UODemo Wiki uo98_uodemo http://uodemo.uo98.org/index.php?title=Main_Page MediaWiki 1.28.0-alpha first-letter Media Special Talk User User talk UODemo Wiki UODemo Wiki talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Main Page 0 1 1 2009-05-20T19:54:23Z MediaWiki default 0 wikitext text/x-wiki <big>'''MediaWiki has been successfully installed.'''</big> Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list] 5 1 2009-05-21T03:36:07Z Derrick 2 wikitext text/x-wiki <big>'''MediaWiki has been successfully installed.'''</big> == [[Special:AllPages]] == 8 5 2009-05-21T10:11:00Z Batlin 3 /* Special:AllPages */ wikitext text/x-wiki <big>'''MediaWiki has been successfully installed.'''</big> '''Welcome the UO Demo Wiki.''' == [[Special:AllPages]] == 9 8 2009-05-21T10:14:27Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> == [[Special:AllPages]] == 10 9 2009-05-21T10:19:39Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> [[rundir]] == [[Special:AllPages]] == 15 10 2009-05-21T11:14:19Z 81.83.65.57 0 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> After installing UO Demo you see two files : uodemo.exe and uodemo.dat. uodemo.exe is the executable, it's contains authentic server code and a full client. uodemo.dat is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys the decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[rundir]]. == [[Special:AllPages]] == 16 15 2009-05-21T20:24:59Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> After installing UO Demo you see two files : uodemo.exe and uodemo.dat. uodemo.exe is the executable, it's contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys the decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. == [[Special:AllPages]] == 30 16 2009-05-22T11:56:56Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> After installing UO Demo you see two files : uodemo.exe and uodemo.dat. uodemo.exe is the executable, it's contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. == [[Special:AllPages]] == 34 30 2009-05-22T12:00:42Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it's contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. == [[Special:AllPages]] == Dynamic0.mul 0 2 2 2009-05-20T22:35:37Z Derrick 2 Basic description wikitext text/x-wiki Found in ../[[.rundir]]/[[uogolddemo]] This is the world save data file. The associated file [[dynidx0.mul]] is it's index. This file is structured as a nested object list. Each top level entity in the file begins with ''@=<type>'' and ends with ''@end'' Identified types (and guesses): P=Player E=Environment Var? N=NPC/Creature W=Wearable D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope) C=Container P Format: @=P <propery>=<value> ... @=[D|C|E] <propery>=<value> ... @end 3 2 2009-05-20T22:36:17Z Derrick 2 wikitext text/x-wiki Found in ../[[.rundir]]/[[uogolddemo]] This is the world save data file. The associated file [[dynidx0.mul]] is it's index. This file is structured as a nested object list. Each top level entity in the file begins with ''@=<type>'' and ends with ''@end'' Nested Entities do not require @end Identified types (and guesses): P=Player E=Environment Var? N=NPC/Creature W=Wearable D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope) C=Container P Format: @=P <propery>=<value> ... @=[D|C|E] <propery>=<value> ... @end 25 3 2009-05-22T02:37:59Z Derrick 2 wikitext text/x-wiki Found in ../[[.rundir]]/[[uogolddemo]] This is the world save data file. The associated file [[dynidx0.mul]] is it's index. This file is structured as a nested object list. Each top level entity in the file begins with ''@=<type>'' and ends with ''@end'' Nested Entities do not require @end Identified types (and guesses): P=Player E=Environment Var? N=NPC/Creature S=Shopkeeper W=Wearable D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope) C=Container P Format: @=P <propery>=<value> ... @=[D|C|E] <propery>=<value> ... @end Dynidx0.mul 0 3 4 2009-05-21T03:34:00Z Derrick 2 preliminary and very poorly formated description of the file wikitext text/x-wiki This is an index into the root objects of dynamic0.mul Root objects are those that begin with ''@=<value>'' and end with ''end'' Sub objects of each root entity are not indexed the index format (appears to be): int32 position int32 length repeating for each object 7 4 2009-05-21T03:55:35Z Derrick 2 wikitext text/x-wiki This is an index into the root objects of dynamic0.mul Root objects are those that begin with ''@=<value>'' and end with ''end'' Sub objects of each root entity are not indexed the index format (appears to be): int32 position int32 length int32 unknown (always 0x0000) repeating for each object Help:Contents 12 4 6 2009-05-21T03:37:38Z Derrick 2 Created page with 'Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [http://www.mediawiki.org/wiki/Manual...' wikitext text/x-wiki Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software. == Getting started == * [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list] * [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ] * [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list] Rundir 0 5 11 2009-05-21T10:26:20Z Batlin 3 Created page with 'All the files inside the UODEMO.DAT file begin with "..\.rundir". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons...' wikitext text/x-wiki All the files inside the UODEMO.DAT file begin with "..\.rundir". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons. NOTE: The "uogolddemo" subdirectory can be changed by setting an environment variable [[SERVERNAME]]. 13 11 2009-05-21T10:32:00Z Batlin 3 wikitext text/x-wiki All the files inside the UODEMO.DAT file begin with "..\.rundir". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons. NOTE: The "uogolddemo" subdirectory can be changed by setting an environment variable [[SERVERNAME]]. uogolddemo contains 6 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul. 14 13 2009-05-21T10:32:55Z Batlin 3 wikitext text/x-wiki All the files inside the UODEMO.DAT file begin with "..\.rundir". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons. NOTE: The "uogolddemo" subdirectory can be changed by setting an environment variable [[SERVERNAME]]. uogolddemo contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul. 17 14 2009-05-21T20:25:25Z Batlin 3 Replaced content with 'Contents moved to [[.rundir]]' wikitext text/x-wiki Contents moved to [[.rundir]] SERVERNAME 0 6 12 2009-05-21T10:28:49Z Batlin 3 Created page with 'SERVERNAME is a environment variable you can set to have the uodemo operate on a subdirectory other than the default "uogolddemo". However, doing this on the default uodemo will...' wikitext text/x-wiki SERVERNAME is a environment variable you can set to have the uodemo operate on a subdirectory other than the default "uogolddemo". However, doing this on the default uodemo will actually make the demo stop because it cannot find that directory inside UODEMO.DAT. To make this work, UODEMO.DAT needs to be edited to include the new server directory. 21 12 2009-05-21T20:34:18Z Batlin 3 wikitext text/x-wiki '''SERVERNAME''' is a environment variable you can set to have the UO Gold Demo operate on a subdirectory other than the default "[[uogolddemo]]". However, doing this on the default [[uodemo.exe]] will actually make the demo stop because it cannot find that directory inside [[UODEMO.DAT]]. To make this work, [[UODEMO.DAT]] needs to be edited to include the new server directory. 41 21 2009-05-26T09:30:57Z Batlin 3 wikitext text/x-wiki '''SERVERNAME''' is a environment variable you can set to have the UO Gold Demo operate on a subdirectory other than the default "[[uogolddemo]]". However, doing this on the default [[uodemo.exe]] will actually make the demo stop because it cannot find that directory inside [[uodemo.dat]]. To make this work, [[uodemo.dat]] needs to be edited to include the new server directory. .rundir 0 7 18 2009-05-21T20:25:35Z Batlin 3 Created page with 'All the files inside the UODEMO.DAT file begin with "..\.rundir". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons...' wikitext text/x-wiki All the files inside the UODEMO.DAT file begin with "..\.rundir". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, uogolddemo, weapons. NOTE: The "uogolddemo" subdirectory can be changed by setting an environment variable [[SERVERNAME]]. uogolddemo contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul. 19 18 2009-05-21T20:31:13Z Batlin 3 wikitext text/x-wiki All the files inside the UODEMO.DAT file begin with "..\'''.rundir'''". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, [[uogolddemo]], weapons. 26 19 2009-05-22T08:50:12Z 81.83.65.57 0 wikitext text/x-wiki All the files inside the [[UODEMO.DAT]] file begin with "..\'''.rundir'''". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, [[uogolddemo]], weapons. 27 26 2009-05-22T08:50:51Z 81.83.65.57 0 wikitext text/x-wiki All the files inside the [[uodemo.dat]] file begin with "..\'''.rundir'''". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, scripts, [[uogolddemo]], weapons. 42 27 2009-05-26T09:52:23Z Batlin 3 wikitext text/x-wiki All the files inside the [[uodemo.dat]] file begin with "..\'''.rundir'''". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, [[scripts]], [[uogolddemo]], weapons. Uogolddemo 0 8 20 2009-05-21T20:32:40Z Batlin 3 Created page with 'The '''uogolddemo''' directory contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul. NOTE: The "...' wikitext text/x-wiki The '''uogolddemo''' directory contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, server.txt, staidx0.mul, statics0.mul. NOTE: The "'''uogolddemo'''" directory can be changed by setting an environment variable [[SERVERNAME]]. 36 20 2009-05-22T12:10:13Z Batlin 3 wikitext text/x-wiki The '''uogolddemo''' directory contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, [[server.txt]], staidx0.mul, statics0.mul. NOTE: The "'''uogolddemo'''" directory can be changed by setting an environment variable [[SERVERNAME]]. Uodemo.dat 0 9 22 2009-05-21T20:48:26Z Batlin 3 Created page with 'This is an custom made archive file for the Ultima Online Gold Demo. It consists if minimum 1 header and can contain up to 3000 files. If the filename in the header is equal to ...' wikitext text/x-wiki This is an custom made archive file for the Ultima Online Gold Demo. It consists if minimum 1 header and can contain up to 3000 files. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the end of the header area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32). 23 22 2009-05-21T20:53:37Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. It consists if minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The file is encrypted using the GOST block cipher. Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire arhive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the end of the header area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32). 24 23 2009-05-21T20:57:27Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. It consists if minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The file is encrypted using the GOST block cipher. Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire arhive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the end of the header area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32). 28 24 2009-05-22T08:52:19Z 81.83.65.57 0 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynanamic in size) It consists if minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The file is encrypted using the GOST block cipher. Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire arhive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the end of the header area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32). 29 28 2009-05-22T08:54:12Z 81.83.65.57 0 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynanamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire arhive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32). 31 29 2009-05-22T11:58:02Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire arhive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encryptedsize will be atleast be 4 bytes (size of one int32). 32 31 2009-05-22T11:58:52Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted seperatly, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire archive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32). 33 32 2009-05-22T11:59:30Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire archive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32). 39 33 2009-05-26T07:54:49Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire archive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32). There are programs out there to extract the files from this DAT file. DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html] Ultima Online uodemo.dat extractor 0.1b [[http://aluigi.altervista.org/papers.htm#others-file]] The DemoDat utility can nowhere be found on the internet, if you have this utility let us know. 40 39 2009-05-26T07:56:24Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire archive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadyonly; // 0 = writeable, <> = read-only int32 encryptedsize; // encrypted filesize (not the actual filesize) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual filesize can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32). There are programs out there to extract the files from this DAT file. DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html] Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file] The DemoDat utility can nowhere be found on the internet, if you have this utility let us know. While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so. 47 40 2009-06-08T09:28:26Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire archive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadonly; // 0: writeable, <>0: read-only int32 encryptedsize; // encrypted file size (not the actual file size) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual file size can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32). Also note that it's recommended (but not required) for the encrypted file size to be a multiple of 8 due to how the GOST cipher works. There are programs out there to extract the files from this DAT file. DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html] Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file] The DemoDat utility can nowhere be found on the internet, if you have this utility let us know. While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so. 48 47 2009-06-08T09:29:38Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. To learn about the contents of this file please go to the [[.rundir]] section. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire archive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadonly; // 0: writeable, <>0: read-only int32 encryptedsize; // encrypted file size (not the actual file size) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual file size can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32). Also note that it's recommended (but not required) for the encrypted file size to be a multiple of 8 due to how the GOST cipher works. There are programs out there to extract the files from this DAT file. DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html] Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file] The DemoDat utility can nowhere be found on the internet, if you have this utility let us know. While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so. Uodemo.exe 0 10 35 2009-05-22T12:07:37Z Batlin 3 Created page with 'This is the Win32 executable for the Ultima Ultima Gold Demo. It comes with an installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it...' wikitext text/x-wiki This is the Win32 executable for the Ultima Ultima Gold Demo. It comes with an installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation. The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know. It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory. Server.txt 0 11 37 2009-05-22T12:23:19Z Batlin 3 Created page with ''''Server.txt''' is an important file and resides in the [[uogolddemo]] directory. It's the very first file the demo open and parses. It is a text file and each line should hav...' wikitext text/x-wiki '''Server.txt''' is an important file and resides in the [[uogolddemo]] directory. It's the very first file the demo open and parses. It is a text file and each line should have the following structure : <VARIABLE VALUE> This is a list of supported string variables : name. This is a list of supported integer variables : id, port, width, height, x, y, startx, starty, spawnclient. This is a list of supported R/W variables : statics, terrain, art, tiledata, hues, animdata, resources, templates R/W variables are checked to be either "w" or "W", any other value defaults to non-W, this most probably indicates they allow for enabling of disabling the writing of certain data. The value of some variables seem to be unused and they could be indication of how the official OSI server worked internally, for example : name, id and port. The variable "spawnclient" is mysterious one, if this variable is not in '''server.txt''' it will default to value "1". If its value is non-zero, then the uodemo will create a thread to run the client in. If its value is zero the server code keeps running but this has no effect at all since the actual client is not running. In this case the only way to terminate the uodemo is by closing it with the Windows Task Manager [http://en.wikipedia.org/wiki/Windows_Task_Manager]. This variable was probably used by OSI during the development of the UO Gold Demo. 38 37 2009-05-22T12:35:37Z Batlin 3 wikitext text/x-wiki '''Server.txt''' is an important file and resides in the [[uogolddemo]] directory. It's the very first file the demo open and parses. It is a text file and each line should have the following structure : <VARIABLE VALUE>. This is a list of supported ''string'' variables : '''name'''.<br> This is a list of supported ''integer'' variables : '''id''', '''port''', '''width''', '''height''', '''x''', '''y''', '''startx''', '''starty''', '''spawnclient'''.<br> This is a list of supported ''R/W'' variables : '''animdata''', '''art''', '''hues''', '''statics''', '''templates''', '''terrain''', '''resources''', '''tiledata''' R/W variables are checked to be either "w" or "W", any other value defaults to non-W, this most probably indicates they allow for enabling of disabling the writing of certain data. Some variables seem to be unsued in the demo and they could be indication of how the official OSI server worked internally, for example : name, id and port. The variable "spawnclient" is mysterious one, if this variable is not in '''server.txt''' it will default to value "1". If its value is non-zero, then the uodemo will create a thread to run the client in. If its value is zero the server code keeps running but this has no effect at all since the actual client is not running. In this case the only way to terminate the uodemo is by closing it with the Windows Task Manager [http://en.wikipedia.org/wiki/Windows_Task_Manager]. This variable was probably used by OSI during the development of the UO Gold Demo. Scripts 0 12 43 2009-05-26T09:59:30Z Batlin 3 Created page with 'The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named sdb.txt. Th...' wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named sdb.txt. The .m files are not encrypted but they do contain a sort of obfusicated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. How the original scripts looked like is unknown but similar output can be re-generated by walking through the tokens created by the parser inside [[uodemo.exe]]. 44 43 2009-05-29T12:11:05Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. The .m files are not encrypted but they do contain a sort of obfusicated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. How the original scripts looked like is unknown but similar output can be re-generated by walking through the tokens created by the parser inside [[uodemo.exe]]. 49 44 2009-06-08T10:34:47Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. The .m files are not encrypted but they do contain a sort of obfusicated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfusicated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfusicated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfusication works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfusicated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F 50 49 2009-06-08T10:35:06Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. The .m files are not encrypted but they do contain a sort of obfusicated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfusicated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfusicated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfusication works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfusicated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br> Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br> Sdb.txt 0 13 45 2009-05-29T12:19:56Z Batlin 3 Created page with ''''sdb.txt''' is a file found in the [[scripts]] directory. SDB most probably stands for String DataBase. It's a text file containing strings in sequential order. The index nu...' wikitext text/x-wiki '''sdb.txt''' is a file found in the [[scripts]] directory. SDB most probably stands for String DataBase. It's a text file containing strings in sequential order. The index number for each string entry is therefor the line number starting from 0. It is not possible to insert or delete strings without having to modify each string reference inside the script files. Adding or replacing string is possible by the simple means of a text editor like Windows Notepad. Two sort of strings exist, a quoted string and a non-quoted string. Quoted strings normally begin and end with a " character. Please note this character can be replaced with random characters because the fact that a string is quoted or non-quoted is solely determined by the script files and not by the string database! 46 45 2009-05-29T12:22:32Z Batlin 3 wikitext text/x-wiki '''sdb.txt''' is a file found in the [[scripts]] directory. SDB most probably stands for String DataBase. It's a text file containing strings in sequential order. The index number for each string entry is therefor the line number starting from 0. It is not possible to insert or delete strings without having to modify each string reference inside the script files. Adding or replacing strings is possible by the simple means of a text editor like Windows Notepad. Two sort of strings exist, a quoted string and a non-quoted string. Quoted strings normally begin and end with a " character. Please note this character can be replaced with random characters because the fact that a string is quoted or non-quoted is solely determined by the script files and not by the string database! Scripts 0 12 51 50 2009-06-09T08:32:55Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfuscation works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br> Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br> 52 51 2009-06-09T09:04:27Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfuscation works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br> Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br> ---- '''This is a list of supported tokens:'''<br> 0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br> 0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br> 0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br> 0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br> 0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br> 0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br> 0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br> 0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br> 0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br> 0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br> 0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br> 0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br> 0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br> 0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br> 0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br> 0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br> 0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br> 0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br> 0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br> 0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br> 0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br> 0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br> 0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br> 0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br> 0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br> 0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br> 0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br> 0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br> 0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br> 0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br> 0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br> 0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br> 0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br> 0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br> 0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br> 0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br> 0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br> 0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br> 0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br> 0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br> 0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br> 0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br> 0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "defines a function without declaring the implementation!"<br> 0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br> 0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable"<br> 0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br> 0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "defines a function without declaring the implementation!"<br> 0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string<br> 0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte<br> 0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word<br> 0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword<br> 0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string<br> NOTE: if you include a script it must the very first statement and you can only include one script per script! '''This is a list of supported but unused tokens:'''<br> 0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br> NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this) '''This is a list of defined but unsupported tokens:'''<br> 0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br> 0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br> 0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br> 0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br> 0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br> NOTE: the ENDxxx statements are only used internally and are added by the parser where needed '''This is a list of obfuscated but unsupported tokens:'''<br> 0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br> 0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br> 0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br> 0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br> 0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br> 0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br> 0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br> ---- The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement]. 53 52 2009-06-17T21:37:20Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfuscation works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br> Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br> ---- '''This is a list of supported tokens:'''<br> 0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br> 0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br> 0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br> 0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br> 0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br> 0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br> 0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br> 0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br> 0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br> 0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br> 0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br> 0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br> 0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br> 0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br> 0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br> 0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br> 0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br> 0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br> 0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br> 0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br> 0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br> 0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br> 0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br> 0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br> 0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br> 0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br> 0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br> 0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br> 0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br> 0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br> 0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br> 0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br> 0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br> 0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br> 0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br> 0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br> 0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br> 0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br> 0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br> 0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br> 0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br> 0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br> 0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br> 0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br> 0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable"<br> 0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br> 0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br> 0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br> 0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br> 0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br> 0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br> 0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br> NOTE: if you include a script it must the very first statement and you can only include one script per script! '''This is a list of supported but unused tokens:'''<br> 0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br> NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this) '''This is a list of defined but unsupported tokens:'''<br> 0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br> 0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br> 0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br> 0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br> 0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br> NOTE: the ENDxxx statements are only used internally and are added by the parser where needed '''This is a list of obfuscated but unsupported tokens:'''<br> 0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br> 0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br> 0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br> 0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br> 0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br> 0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br> 0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br> ---- The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement]. 71 53 2009-06-23T18:47:52Z Batlin 3 Protected "[[Scripts]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfuscation works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br> Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br> ---- '''This is a list of supported tokens:'''<br> 0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br> 0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br> 0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br> 0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br> 0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br> 0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br> 0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br> 0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br> 0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br> 0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br> 0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br> 0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br> 0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br> 0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br> 0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br> 0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br> 0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br> 0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br> 0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br> 0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br> 0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br> 0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br> 0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br> 0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br> 0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br> 0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br> 0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br> 0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br> 0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br> 0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br> 0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br> 0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br> 0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br> 0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br> 0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br> 0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br> 0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br> 0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br> 0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br> 0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br> 0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br> 0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br> 0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br> 0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br> 0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable"<br> 0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br> 0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br> 0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br> 0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br> 0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br> 0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br> 0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br> NOTE: if you include a script it must the very first statement and you can only include one script per script! '''This is a list of supported but unused tokens:'''<br> 0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br> NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this) '''This is a list of defined but unsupported tokens:'''<br> 0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br> 0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br> 0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br> 0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br> 0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br> NOTE: the ENDxxx statements are only used internally and are added by the parser where needed '''This is a list of obfuscated but unsupported tokens:'''<br> 0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br> 0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br> 0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br> 0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br> 0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br> 0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br> 0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br> ---- The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement]. 77 71 2009-06-23T18:51:10Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. A decompiler can be found here : [[Mass M Decompiler]]. The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfuscation works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br> Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br> ---- '''This is a list of supported tokens:'''<br> 0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br> 0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br> 0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br> 0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br> 0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br> 0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br> 0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br> 0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br> 0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br> 0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br> 0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br> 0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br> 0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br> 0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br> 0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br> 0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br> 0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br> 0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br> 0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br> 0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br> 0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br> 0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br> 0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br> 0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br> 0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br> 0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br> 0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br> 0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br> 0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br> 0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br> 0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br> 0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br> 0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br> 0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br> 0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br> 0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br> 0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br> 0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br> 0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br> 0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br> 0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br> 0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br> 0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br> 0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br> 0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable"<br> 0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br> 0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br> 0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br> 0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br> 0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br> 0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br> 0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br> NOTE: if you include a script it must the very first statement and you can only include one script per script! '''This is a list of supported but unused tokens:'''<br> 0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br> NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this) '''This is a list of defined but unsupported tokens:'''<br> 0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br> 0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br> 0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br> 0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br> 0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br> NOTE: the ENDxxx statements are only used internally and are added by the parser where needed '''This is a list of obfuscated but unsupported tokens:'''<br> 0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br> 0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br> 0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br> 0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br> 0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br> 0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br> 0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br> ---- The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement]. 79 77 2009-06-23T19:08:55Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. A decompiler can be found here : [[Mass M Decompiler]]. The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfuscation works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br> Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br> ---- '''This is a list of supported tokens:'''<br> 0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br> 0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br> 0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br> 0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br> 0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br> 0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br> 0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br> 0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br> 0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br> 0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br> 0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br> 0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br> 0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br> 0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br> 0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br> 0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br> 0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br> 0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br> 0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br> 0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br> 0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br> 0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br> 0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br> 0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br> 0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br> 0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br> 0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br> 0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br> 0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br> 0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br> 0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br> 0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br> 0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br> 0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br> 0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br> 0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br> 0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br> 0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br> 0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br> 0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br> 0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br> 0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br> 0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br> 0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br> 0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable at script level"<br> 0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br> 0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br> 0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br> 0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br> 0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br> 0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br> 0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br> NOTE: if you include a script it must the very first statement and you can only include one script per script! '''This is a list of supported but unused tokens:'''<br> 0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br> NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this) '''This is a list of defined but unsupported tokens:'''<br> 0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br> 0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br> 0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br> 0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br> 0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br> NOTE: the ENDxxx statements are only used internally and are added by the parser where needed '''This is a list of obfuscated but unsupported tokens:'''<br> 0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br> 0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br> 0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br> 0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br> 0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br> 0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br> 0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br> ---- The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement]. Uodemo.exe 0 10 54 35 2009-06-17T21:39:51Z Batlin 3 wikitext text/x-wiki This is the Win32 executable for the Ultima Online Gold Demo. It comes with an installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation. The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know. It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory. 73 54 2009-06-23T18:48:23Z Batlin 3 Protected "[[Uodemo.exe]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki This is the Win32 executable for the Ultima Online Gold Demo. It comes with an installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation. The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know. It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory. Main Page 0 1 55 34 2009-06-17T21:41:59Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> Click here to read more about the [[Origins of the Ultima Online Demo]]. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it's contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. == [[Special:AllPages]] == 57 55 2009-06-23T14:49:46Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> Click here to read more about the [[Origins of the Ultima Online Demo]]. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it's contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''UO Demo+.'''</big> The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the secrets within. == [[Special:AllPages]] == 60 57 2009-06-23T17:00:07Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> Click here to read more about the [[Origins of the Ultima Online Demo]]. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it's contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''UO Demo+.'''</big> The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within. == [[Special:AllPages]] == 63 60 2009-06-23T18:46:00Z Batlin 3 Protected "[[Main Page]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> Click here to read more about the [[Origins of the Ultima Online Demo]]. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it's contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''UO Demo+.'''</big> The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within. == [[Special:AllPages]] == 85 63 2009-06-24T11:14:11Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> Click here to read more about the [[Dating the Ultima Online Demo]]. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it's contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''UO Demo+.'''</big> The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within. == [[Special:AllPages]] == 90 85 2009-06-25T22:43:15Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> Click here to read more about the [[Dating the Ultima Online Demo]]. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''UO Demo+.'''</big> The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within. == [[Special:AllPages]] == 97 90 2009-07-13T09:00:56Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> Click here to read more about the [[Dating the Ultima Online Demo]]. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''UO Demo+.'''</big> The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == [[Special:AllPages]] == Dating the Ultima Online Demo 0 14 56 2009-06-17T21:51:08Z Batlin 3 Created page with 'To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998. There is some contradicting evidence related with t...' wikitext text/x-wiki To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998. There is some contradicting evidence related with the age of the code inside the UO Demo. Based on comparing the decompiled scripts with the Publish patch notes on [http://www.uoguide.com] we have found that the demo server code is based on the patch from April 1998. The client side of the [[uodemo.exe]] is, however, older: lack of support for 800x600 resolution, the layout of the options menu is different, remainders from the login encryption tell us the code is based on the older 1.23.xx clients. 62 56 2009-06-23T18:45:41Z Batlin 3 Protected "[[Origins of the Ultima Online Demo]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998. There is some contradicting evidence related with the age of the code inside the UO Demo. Based on comparing the decompiled scripts with the Publish patch notes on [http://www.uoguide.com] we have found that the demo server code is based on the patch from April 1998. The client side of the [[uodemo.exe]] is, however, older: lack of support for 800x600 resolution, the layout of the options menu is different, remainders from the login encryption tell us the code is based on the older 1.23.xx clients. 83 62 2009-06-24T11:13:41Z Batlin 3 moved [[Origins of the Ultima Online Demo]] to [[Dating the Ultima Online Demo]] wikitext text/x-wiki To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998. There is some contradicting evidence related with the age of the code inside the UO Demo. Based on comparing the decompiled scripts with the Publish patch notes on [http://www.uoguide.com] we have found that the demo server code is based on the patch from April 1998. The client side of the [[uodemo.exe]] is, however, older: lack of support for 800x600 resolution, the layout of the options menu is different, remainders from the login encryption tell us the code is based on the older 1.23.xx clients. 86 83 2009-06-24T11:15:17Z Batlin 3 wikitext text/x-wiki To our knowledge the Ultima Online Demo can only be found on the Ultima Online Gold CD which was released around august 1998. There is some contradicting evidence related with the age of the code inside the UO Demo. Based on comparing the decompiled scripts with the Publish patch notes on [http://www.uoguide.com] we have found that the demo server code is based on the patch from April 1998 but some patches (not all) from the June 1998 patch are also included. The client side of the [[uodemo.exe]] is, however, older: lack of support for 800x600 resolution, the layout of the options menu is different, remainders from the login encryption tell us the code is based on the older 1.23.xx clients. Uodemo+ 0 15 58 2009-06-23T15:45:19Z Batlin 3 Created page with '== Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title a...' wikitext text/x-wiki == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file with requiring extra patches. == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files. == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. 59 58 2009-06-23T16:18:02Z Batlin 3 wikitext text/x-wiki == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files. == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. 64 59 2009-06-23T18:46:15Z Batlin 3 Protected "[[Uodemo+]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files. == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. 82 64 2009-06-24T10:54:51Z Batlin 3 wikitext text/x-wiki == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%202).rar] == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. Download : [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar] 88 82 2009-06-24T11:27:03Z Batlin 3 wikitext text/x-wiki == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rarDownload UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constant) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%202).rar Download UoDemo+ (Publish 2)] == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 89 88 2009-06-25T07:48:20Z Batlin 3 wikitext text/x-wiki == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%202).rar Download UoDemo+ (Publish 2)] == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 94 89 2009-07-09T18:43:54Z Batlin 3 /* Publish 2 */ wikitext text/x-wiki == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 95 94 2009-07-13T08:50:45Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 11+: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)] == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 96 95 2009-07-13T08:58:55Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 11+: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)] == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] Secrets 0 16 61 2009-06-23T17:15:41Z Batlin 3 Created page with 'The Ultima Online Demo contains some features that people didn't know about till now! '''Did you know you can tell the wisp to go away?'''<br> Say "dismiss" and the wisp will le...' wikitext text/x-wiki The Ultima Online Demo contains some features that people didn't know about till now! '''Did you know you can tell the wisp to go away?'''<br> Say "dismiss" and the wisp will leave you alone and will start a live of its own.<br> '''The poisoning script contains a serious bug.'''<br> It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml]<br> (with thanks to Dies Irae)<br> 67 61 2009-06-23T18:47:03Z Batlin 3 Protected "[[Secrets]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki The Ultima Online Demo contains some features that people didn't know about till now! '''Did you know you can tell the wisp to go away?'''<br> Say "dismiss" and the wisp will leave you alone and will start a live of its own.<br> '''The poisoning script contains a serious bug.'''<br> It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml]<br> (with thanks to Dies Irae)<br> 91 67 2009-06-25T23:06:20Z Batlin 3 wikitext text/x-wiki The Ultima Online Demo contains some features that people didn't know about till now! '''Did you know you can tell the wisp to go away?'''<br> Say "dismiss" and the wisp will leave you alone and will start a live of its own.<br> '''The poisoning script contains a serious bug.'''<br> It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml]<br> (with thanks to Dies Irae)<br> '''login.txt'''<br> The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br> 93 91 2009-07-03T11:03:16Z Batlin 3 wikitext text/x-wiki The Ultima Online Demo contains some features that people didn't know about till now! '''Did you know you can tell the wisp to go away?'''<br> Say "dismiss" and the wisp will leave you alone and will start a life of its own.<br> '''The poisoning script contains a serious bug.'''<br> It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml]<br> (with thanks to Dies Irae)<br> '''login.txt'''<br> The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br> .rundir 0 7 65 42 2009-06-23T18:46:39Z Batlin 3 Protected "[[.rundir]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki All the files inside the [[uodemo.dat]] file begin with "..\'''.rundir'''". This directory contains 8 subdirectories : bank, books, chunks, classifier, convo, [[scripts]], [[uogolddemo]], weapons. SERVERNAME 0 6 66 41 2009-06-23T18:46:50Z Batlin 3 Protected "[[SERVERNAME]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki '''SERVERNAME''' is a environment variable you can set to have the UO Gold Demo operate on a subdirectory other than the default "[[uogolddemo]]". However, doing this on the default [[uodemo.exe]] will actually make the demo stop because it cannot find that directory inside [[uodemo.dat]]. To make this work, [[uodemo.dat]] needs to be edited to include the new server directory. Uodemo.dat 0 9 68 48 2009-06-23T18:47:14Z Batlin 3 Protected "[[Uodemo.dat]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. To learn about the contents of this file please go to the [[.rundir]] section. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire archive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadonly; // 0: writeable, <>0: read-only int32 encryptedsize; // encrypted file size (not the actual file size) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual file size can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32). Also note that it's recommended (but not required) for the encrypted file size to be a multiple of 8 due to how the GOST cipher works. There are programs out there to extract the files from this DAT file. DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html] Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file] The DemoDat utility can nowhere be found on the internet, if you have this utility let us know. While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so. Dynamic0.mul 0 2 69 25 2009-06-23T18:47:28Z Batlin 3 Protected "[[Dynamic0.mul]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki Found in ../[[.rundir]]/[[uogolddemo]] This is the world save data file. The associated file [[dynidx0.mul]] is it's index. This file is structured as a nested object list. Each top level entity in the file begins with ''@=<type>'' and ends with ''@end'' Nested Entities do not require @end Identified types (and guesses): P=Player E=Environment Var? N=NPC/Creature S=Shopkeeper W=Wearable D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope) C=Container P Format: @=P <propery>=<value> ... @=[D|C|E] <propery>=<value> ... @end Dynidx0.mul 0 3 70 7 2009-06-23T18:47:34Z Batlin 3 Protected "[[Dynidx0.mul]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki This is an index into the root objects of dynamic0.mul Root objects are those that begin with ''@=<value>'' and end with ''end'' Sub objects of each root entity are not indexed the index format (appears to be): int32 position int32 length int32 unknown (always 0x0000) repeating for each object Server.txt 0 11 72 38 2009-06-23T18:48:05Z Batlin 3 Protected "[[Server.txt]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki '''Server.txt''' is an important file and resides in the [[uogolddemo]] directory. It's the very first file the demo open and parses. It is a text file and each line should have the following structure : <VARIABLE VALUE>. This is a list of supported ''string'' variables : '''name'''.<br> This is a list of supported ''integer'' variables : '''id''', '''port''', '''width''', '''height''', '''x''', '''y''', '''startx''', '''starty''', '''spawnclient'''.<br> This is a list of supported ''R/W'' variables : '''animdata''', '''art''', '''hues''', '''statics''', '''templates''', '''terrain''', '''resources''', '''tiledata''' R/W variables are checked to be either "w" or "W", any other value defaults to non-W, this most probably indicates they allow for enabling of disabling the writing of certain data. Some variables seem to be unsued in the demo and they could be indication of how the official OSI server worked internally, for example : name, id and port. The variable "spawnclient" is mysterious one, if this variable is not in '''server.txt''' it will default to value "1". If its value is non-zero, then the uodemo will create a thread to run the client in. If its value is zero the server code keeps running but this has no effect at all since the actual client is not running. In this case the only way to terminate the uodemo is by closing it with the Windows Task Manager [http://en.wikipedia.org/wiki/Windows_Task_Manager]. This variable was probably used by OSI during the development of the UO Gold Demo. Rundir 0 5 74 17 2009-06-23T18:48:39Z Batlin 3 Protected "[[Rundir]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki Contents moved to [[.rundir]] Sdb.txt 0 13 75 46 2009-06-23T18:49:01Z Batlin 3 Protected "[[Sdb.txt]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki '''sdb.txt''' is a file found in the [[scripts]] directory. SDB most probably stands for String DataBase. It's a text file containing strings in sequential order. The index number for each string entry is therefor the line number starting from 0. It is not possible to insert or delete strings without having to modify each string reference inside the script files. Adding or replacing strings is possible by the simple means of a text editor like Windows Notepad. Two sort of strings exist, a quoted string and a non-quoted string. Quoted strings normally begin and end with a " character. Please note this character can be replaced with random characters because the fact that a string is quoted or non-quoted is solely determined by the script files and not by the string database! Uogolddemo 0 8 76 36 2009-06-23T18:49:24Z Batlin 3 Protected "[[Uogolddemo]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki The '''uogolddemo''' directory contains 8 files : [[dynamic0.mul]], [[dynidx0.mul]], regions.mul, resbank.mul, resregions.txt, [[server.txt]], staidx0.mul, statics0.mul. NOTE: The "'''uogolddemo'''" directory can be changed by setting an environment variable [[SERVERNAME]]. Mass M Decompiler 0 17 78 2009-06-23T19:06:59Z Batlin 3 Created page with 'Presenting to you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C w...' wikitext text/x-wiki Presenting to you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems. How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory. Download [[File:Mass M Decompiler (Publish 1)]]. 80 78 2009-06-23T19:32:50Z Batlin 3 wikitext text/x-wiki Presenting you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems. How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory. Publish 1 can be downloaded here: [http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip]. 81 80 2009-06-23T19:46:23Z Batlin 3 Protected "[[Mass M Decompiler]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki Presenting you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems. How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory. Publish 1 can be downloaded here: [http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip]. 87 81 2009-06-24T11:18:39Z Batlin 3 wikitext text/x-wiki Presenting you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems. How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory. [http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)]. Technical information about the M files can be found [[scripts|here]]. 92 87 2009-06-29T21:51:24Z Batlin 3 wikitext text/x-wiki Presenting you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems. How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory. '''Current:'''<br> [http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br> NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents '''Archived:'''<br> [http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)]. Technical information about the M files can be found [[scripts|here]]. Origins of the Ultima Online Demo 0 18 84 2009-06-24T11:13:41Z Batlin 3 moved [[Origins of the Ultima Online Demo]] to [[Dating the Ultima Online Demo]] wikitext text/x-wiki #REDIRECT [[Dating the Ultima Online Demo]] UoDmClnt 0 19 98 2009-07-13T09:24:06Z Batlin 3 Created page with ''''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work. OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100...' wikitext text/x-wiki '''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work. OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[UoDemo+]]. The best shot to make this work was to patch the demo to act a real client. To make this work download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You also have to creata a file UoDmClnt.cfg in your UO game directory (same directory where login.cfg and uo.cfg are found). Give it these contents: '''DemoServer=<IP>,<PORT>''' The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server. == Publish 2 == The Sleep patch was modified. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)] == Publish 1 == Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)] 99 98 2009-07-13T09:24:33Z Batlin 3 wikitext text/x-wiki '''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work. OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[UoDemo+]]. The best shot to make this work was to patch the demo to act as a real client. To make this work download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You also have to creata a file UoDmClnt.cfg in your UO game directory (same directory where login.cfg and uo.cfg are found). Give it these contents: '''DemoServer=<IP>,<PORT>''' The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server. == Publish 2 == The Sleep patch was modified. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)] == Publish 1 == Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)] 100 99 2009-07-13T11:38:45Z Batlin 3 wikitext text/x-wiki '''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work. OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client. Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found). Give it these contents: '''DemoServer=<IP>,<PORT>''' The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server. == Publish 2 == The timings of the Sleep patch were improved. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)] == Publish 1 == Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)] UoDmClnt 0 19 101 100 2009-07-13T11:39:05Z Batlin 3 Protected "[[UoDmClnt]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki '''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work. OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client. Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found). Give it these contents: '''DemoServer=<IP>,<PORT>''' The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server. == Publish 2 == The timings of the Sleep patch were improved. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)] == Publish 1 == Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)] 131 101 2009-12-23T21:50:47Z Batlin 3 wikitext text/x-wiki '''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work. OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client. Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found). Give it these contents: '''DemoServer=<IP>,<PORT>''' The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server. == Publish 3 == You can now use REGKEYNAME to override the registry subkey, default is "1.0". [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%203).rar Download UoDmClnt (Publish 3)] == Publish 2 == The timings of the Sleep patch were improved. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)] == Publish 1 == Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://uodemo.uo98.com/files/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)] 135 131 2009-12-29T14:44:26Z Batlin 3 wikitext text/x-wiki '''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work. OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client. Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found). Give it these contents: '''DemoServer=<IP>,<PORT>''' The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server. == Publish 3 == You can now use REGKEYNAME to override the registry subkey, default is "1.0". [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%203).rar Download UoDmClnt (Publish 3)] == Publish 2 == The timings of the Sleep patch were improved. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)] == Publish 1 == Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)] 140 135 2010-01-14T22:39:15Z Batlin 3 wikitext text/x-wiki '''UoDmClnt''' was invented to make [[uodemo+]] Publish 10 work. OSI made a lot of protocol changes and even the client that comes on the Ultima Online Gold CD does not work 100% with the patched [[uodemo+]]. The best shot to make this work was to patch the demo to act as a real client. Download the UoDmClnt and place it somewhere on your PC, preferably in your UO game directory. You have to create a file '''UoDmClnt.cfg''' in your UO game directory (same directory where ''login.cfg'' and ''uo.cfg'' are found). Give it these contents: '''DemoServer=<IP>,<PORT>''' The <IP> is the IP address of the computer running the UoDemo+ server. The <PORT> is the port number as in [[server.txt]], by default this is 10016. Never use 127.0.0.1 as the <IP>, as this is the fixed IP address used by the internal client of the UoDemo+ server. == Publish 4 == The automatic logon process has been removed, you can now create type an account name (depends on server though!) and create new characters. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%204).rar Download UoDmClnt (Publish 4)] == Publish 3 == You can now use REGKEYNAME to override the registry subkey, default is "1.0". [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%203).rar Download UoDmClnt (Publish 3)] == Publish 2 == The timings of the Sleep patch were improved. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%202).rar Download UoDmClnt (Publish 2)] == Publish 1 == Added missing socket functions and replaced the calls to the linked list with calls to the socket functions. Also a Sleep patch was added. [http://download.joinuo.com/UoDmClnt/UoDmClnt%20(Publish%201).rar Download UoDmClnt (Publish 1)] Uodemo+ 0 15 102 96 2009-08-20T09:08:41Z Batlin 3 /* Publish 11 */ wikitext text/x-wiki A list of supported environment variables:<br> Publish 11+: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: The divide by two was intended, see [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 103 102 2009-08-20T09:09:55Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 11+: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 104 103 2009-08-20T09:10:20Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 129 104 2009-12-23T21:47:51Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 12: REGKYENAME = <registry key name><br> Publish 12: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 12 == The twelfth publish of the demo reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 130 129 2009-12-23T21:48:12Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 12: REGKEYNAME = <registry key name><br> Publish 12: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 12 == The twelfth publish of the demo reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://uodemo.uo98.com/files/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 136 130 2009-12-29T14:58:46Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 13+: IGNOREDYNIDX0 = YES/NO<br> Publish 12+: REGKEYNAME = <registry key name><br> Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 13 == The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br> == Publish 12 == The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 139 136 2010-01-14T12:36:03Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 14+: USEACCOUNTNAME = YES/NO<br> Publish 14+: MANUALLOGON = YES/NO<br> Publish 13+: IGNOREDYNIDX0 = YES/NO<br> Publish 12+: REGKEYNAME = <registry key name><br> Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 14 == The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an Account ID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br> == Publish 13 == The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br> == Publish 12 == The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 141 139 2010-01-15T16:13:48Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 14+: USEACCOUNTNAME = YES/NO<br> Publish 14+: MANUALLOGON = YES/NO<br> Publish 13+: IGNOREDYNIDX0 = YES/NO<br> Publish 12+: REGKEYNAME = <registry key name><br> Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 14 == The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br> == Publish 13 == The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br> == Publish 12 == The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] Uodemo.exe 0 10 105 73 2009-08-21T12:11:02Z Batlin 3 wikitext text/x-wiki == General == This is the Win32 executable for the Ultima Online Gold Demo. It comes with the installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation. The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know. It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory. == Multi-threading == The executable implements 3 threads.<br> thread 1: the server code runs in the default thread (and spawns the 2 other threads)<br> thread 2: the server-side UI thread, this one only controls the server start/exit window<br> thread 3: the client-side thread, this thread runs the same code like we can find in the old OSI UO clients<br> 106 105 2009-08-21T12:28:04Z Batlin 3 wikitext text/x-wiki == General == This is the Win32 executable for the Ultima Online Gold Demo. It comes with the installer on the Ultima Online Gold CD, the demo requires that the client is installed becauses it uses the graphics and sounds from the client installation. The version on the CD is 1.09. If there are other version of uodemo.exe out there, we would like to know. It's been proven that the uodemo contains a full server and a full client. The client and server communicate with each other with the same protocol as the regular client and official OSI servers did back in the days. Unlike the official protocol the packets are send unencrypted. Also note that these packets are not send through sockets but by the simple means of a linked list in memory. == Multi-threading == The executable implements 3 threads.<br> thread 1: the server code runs in the default thread (and spawns the 2 other threads)<br> thread 2: the server-side UI thread, this one only controls the server start/exit window<br> thread 3: the client-side thread, this thread runs the same code like we can find in the old OSI UO clients<br> == Multiple libraries == The demo contains enough proof to tell us that it has been built using different compiler settings, thus it's one final link of libraries each compiled at a different time and/or location. Some libraries use the EBP-stack frame technique whereas other functions access the stack through the ESP register directly. Also, different alignment fillers are found and some functions are not aligned at all. == The server code == The server code is a very complex piece of software. What is currently known from reverse-engineering the uodemo server code has been placed here : [[Server Code]] Server Code 0 20 107 2009-08-21T13:19:12Z Batlin 3 Created page with '== The core versus The runtime engine. == The server side consist of atleast 3 big engines: 1) the communication engine (sending and receiving packets) 2) the time manager 3)...' wikitext text/x-wiki == The core versus The runtime engine. == The server side consist of atleast 3 big engines: 1) the communication engine (sending and receiving packets) 2) the time manager 3) the runtime engine == The communication engine == Inside the main loop of the server the sequence is always: 1) receive packets 2) send packets 3) handle packets 4) execute the time manager After packets are received they are handled immediately. If a new packet needs to be sent it will be put in a buffer that's send on the next loop. == The runtime engine == The runtime engine executes the scripts, scripts are linked either in the template stable (a file containing all object definitions) or the skill table (a file containing all skill definitions). Thus the runtime engine is not really an engine on its own but gets called through player interaction and through the time manager in case of events. == The event system == Inside the [[scripts]] we can find event function definitions. Since scripts are attached (dynamically) to objects those events are attached to the objects too. When an event is triggered then the related event function is executed (operating on the specific object). The events are triggered throughout the server code depending on the event meaning. For example, the "''washit''" (was hit) event is triggered when damage is applied to a mobile and when "''doDamageXXX''" functions are called. Another method of triggering an event is the "''triggerScript''" function which is used in some scripts like the "''dragonai''" script. Event definitions can preceeded with a number between 0 and 1000. This number is a chance indicator. The following check can be found inside the server code: // EIP=004CE288 if(event_chance == 1000) { // add event to the execute list } else if(rand() & 0x3FF < event_chance) { // add event to the execute list } Event functions must return a number either 0 or 1. When the returned value is 0 then the remaining triggers are not executed. This was found by testing only and has not yet been proved inside the server code! 108 107 2009-08-21T13:19:32Z Batlin 3 Protected "[[Server Code]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki == The core versus The runtime engine. == The server side consist of atleast 3 big engines: 1) the communication engine (sending and receiving packets) 2) the time manager 3) the runtime engine == The communication engine == Inside the main loop of the server the sequence is always: 1) receive packets 2) send packets 3) handle packets 4) execute the time manager After packets are received they are handled immediately. If a new packet needs to be sent it will be put in a buffer that's send on the next loop. == The runtime engine == The runtime engine executes the scripts, scripts are linked either in the template stable (a file containing all object definitions) or the skill table (a file containing all skill definitions). Thus the runtime engine is not really an engine on its own but gets called through player interaction and through the time manager in case of events. == The event system == Inside the [[scripts]] we can find event function definitions. Since scripts are attached (dynamically) to objects those events are attached to the objects too. When an event is triggered then the related event function is executed (operating on the specific object). The events are triggered throughout the server code depending on the event meaning. For example, the "''washit''" (was hit) event is triggered when damage is applied to a mobile and when "''doDamageXXX''" functions are called. Another method of triggering an event is the "''triggerScript''" function which is used in some scripts like the "''dragonai''" script. Event definitions can preceeded with a number between 0 and 1000. This number is a chance indicator. The following check can be found inside the server code: // EIP=004CE288 if(event_chance == 1000) { // add event to the execute list } else if(rand() & 0x3FF < event_chance) { // add event to the execute list } Event functions must return a number either 0 or 1. When the returned value is 0 then the remaining triggers are not executed. This was found by testing only and has not yet been proved inside the server code! 145 108 2010-01-21T12:06:21Z Batlin 3 /* The runtime engine */ wikitext text/x-wiki == The core versus The runtime engine. == The server side consist of atleast 3 big engines: 1) the communication engine (sending and receiving packets) 2) the time manager 3) the runtime engine == The communication engine == Inside the main loop of the server the sequence is always: 1) receive packets 2) send packets 3) handle packets 4) execute the time manager After packets are received they are handled immediately. If a new packet needs to be sent it will be put in a buffer that's send on the next loop. == The runtime engine == The runtime engine executes the scripts, scripts are linked either in the template stable (a file containing all object definitions) or the skill table (a file containing all skill definitions). Thus the runtime engine is not really an engine on its own but gets called through player interaction and through the time manager in case of events. A complete list of commands the scripts can use has been published here: [[Command List|Ultima Online Demo Command List]] == The event system == Inside the [[scripts]] we can find event function definitions. Since scripts are attached (dynamically) to objects those events are attached to the objects too. When an event is triggered then the related event function is executed (operating on the specific object). The events are triggered throughout the server code depending on the event meaning. For example, the "''washit''" (was hit) event is triggered when damage is applied to a mobile and when "''doDamageXXX''" functions are called. Another method of triggering an event is the "''triggerScript''" function which is used in some scripts like the "''dragonai''" script. Event definitions can preceeded with a number between 0 and 1000. This number is a chance indicator. The following check can be found inside the server code: // EIP=004CE288 if(event_chance == 1000) { // add event to the execute list } else if(rand() & 0x3FF < event_chance) { // add event to the execute list } Event functions must return a number either 0 or 1. When the returned value is 0 then the remaining triggers are not executed. This was found by testing only and has not yet been proved inside the server code! Uodemo.dat 0 9 109 68 2009-08-24T09:34:01Z Batlin 3 wikitext text/x-wiki This is a custom made archive file for the Ultima Online Gold Demo. To learn about the contents of this file please go to the [[.rundir]] section. The archive is divided in 2 area's: header area (dynamic in size, the size is a multiple of 280 bytes) data area (dynamic in size) The header area consists of minimum 1 header and can contain up to 3000 files. More files are simply not supported by the code. If the filename in the header is equal to "@@@.@@@" then the end of the header area is reached. The end of the header area marks the beginning of the data area. The file is encrypted using the GOST block cipher. Each header is encrypted separately, the data of each file is encrypted in blocks of 4KB (4096 bytes). The same encryption/decryption key is used for the entire archive. One header entry is 280 bytes in size. struct datheader { char filename[260]; // 260 is MAX_PATH in Windows int32 filepointer; // this pointer is relative from the beginning of the data area int32 maximumsize; // if set, the file can grow until this size is reached int32 isreadonly; // 0: writeable, <>0: read-only int32 encryptedsize; // encrypted file size (not the actual file size) int32 fileposition; // internally used by [[uodemo.exe]], not relevant for reading from the archive }; The actual file size can be obtained by reading the last int32 in the file data after decryption. This means that for a 0 length file, the encrypted size will be atleast be 4 bytes (size of one int32). Also note that it's recommended (but not required) for the encrypted file size to be a multiple of 8 due to how the GOST cipher works. There are programs out there to extract the files from this DAT file. DemoDat v0.34 [http://web.archive.org/web/19990127212423/uox.stratics.com/files.html] Ultima Online uodemo.dat extractor 0.1b [http://aluigi.altervista.org/papers.htm#others-file] The DemoDat utility can nowhere be found on the internet, if you have this utility let us know. While it is technically possible to replace and add files in this archive file, no one has officially done the effort to do so. Main Page 0 1 110 97 2009-09-16T19:57:19Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> Click here to read more about the [[Dating the Ultima Online Demo]]. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''UO Demo+.'''</big> The [[uodemo+]].exe is a modified uodemo.exe to unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. <big>'''UO Demo Forum'''</big> '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == [[Special:AllPages]] == Dynamic0.mul 0 2 132 69 2009-12-26T11:17:52Z Batlin 3 wikitext text/x-wiki Found in ../[[.rundir]]/[[uogolddemo]] This is the world save data file. The associated file [[dynidx0.mul]] is it's index. This file is structured as a nested object list. Each top level entity in the file begins with ''@=<type>'' and ends with ''@end'' Nested Entities do not require @end Identified types (and guesses): P=Player E=Environment Var? G=Guard N=NPC/Creature S=Shopkeeper W=Wearable D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope) C=Container P Format: @=P <propery>=<value> ... @=[D|C|E] <propery>=<value> ... @end 133 132 2009-12-26T11:47:12Z Batlin 3 wikitext text/x-wiki Found in ../[[.rundir]]/[[uogolddemo]] This is the world save data file. The associated file [[dynidx0.mul]] is it's index. This file is structured as a nested object list. Each top level entity in the file begins with ''@=<type>'' and ends with ''@end'' Nested Entities do not require @end Identified types (and guesses): B=Buliiten Board C=Container D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope) E=Chunk Egg G=Guard N=NPC/Creature P=Player S=Shopkeeper W=Wearable (Weapon,Armor) Z=Item P Format: @=P <propery>=<value> ... @=[D|C|E] <propery>=<value> ... @end 134 133 2009-12-26T11:47:40Z Batlin 3 wikitext text/x-wiki Found in ../[[.rundir]]/[[uogolddemo]] This is the world save data file. The associated file [[dynidx0.mul]] is it's index. This file is structured as a nested object list. Each top level entity in the file begins with ''@=<type>'' and ends with ''@end'' Nested Entities do not require @end Identified types (and guesses): B=Bulletin Board C=Container D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope) E=Chunk Egg G=Guard N=NPC/Creature P=Player S=Shopkeeper W=Wearable (Weapon,Armor) Z=Item P Format: @=P <propery>=<value> ... @=[D|C|E] <propery>=<value> ... @end Mass M Decompiler 0 17 137 92 2010-01-02T14:28:50Z Batlin 3 wikitext text/x-wiki Presenting you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems. How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory. If you need assistance with using the Mass M Decompiler please search or post your question at JoinUO : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] '''Current:'''<br> [http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br> NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents '''Archived:'''<br> [http://uodemo.uo98.com/files/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)]. Technical information about the M files can be found [[scripts|here]]. 138 137 2010-01-03T18:21:50Z Batlin 3 wikitext text/x-wiki Presenting you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems. How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory. If you need assistance with using the Mass M Decompiler please search or post your question at JoinUO : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] '''Current:'''<br> [http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br> NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents '''Archived:'''<br> [http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)]. Technical information about the M files can be found [[scripts|here]]. Command List 0 37 146 2010-01-21T12:10:49Z Batlin 3 Created page with '== Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<...' wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer objtoint(object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer strtoi(string);<br> integer strlen(string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer hasscript(object, string);<br> integer hasScript(object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object NULL(void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location getRelayLoc(object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVritueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string objToStr(object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer getPulseNum(void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer isEditing(object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer getPlayAge(object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer getAccountNum(object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer abs(integer);<br> integer isGoldAccount(object);<br> 147 146 2010-01-21T21:33:34Z 81.83.66.38 0 Fixed error reported by Faust wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer objtoint(object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer strtoi(string);<br> integer strlen(string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer hasscript(object, string);<br> integer hasScript(object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object NULL(void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location getRelayLoc(object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string objToStr(object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer getPulseNum(void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer isEditing(object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer getPlayAge(object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer getAccountNum(object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer abs(integer);<br> integer isGoldAccount(object);<br> 148 147 2010-01-24T20:39:08Z 81.83.66.38 0 /* All Public Functions: */ wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer hasscript(object, string);<br> integer hasScript(object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location getRelayLoc(object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer getPulseNum(void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer isEditing(object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer getPlayAge(object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer getAccountNum(object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 149 148 2010-01-24T20:40:11Z Batlin 3 Protected "[[Command List]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer hasscript(object, string);<br> integer hasScript(object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location getRelayLoc(object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer getPulseNum(void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer isEditing(object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer getPlayAge(object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer getAccountNum(object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 154 149 2010-01-24T20:46:30Z Batlin 3 Changed protection level for "[[Command List]]": Counter-productive edit warring ([edit=sysop] (indefinite) [move=sysop] (indefinite)) [cascading] wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer hasscript(object, string);<br> integer hasScript(object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location getRelayLoc(object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer getPulseNum(void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer isEditing(object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer getPlayAge(object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer getAccountNum(object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 163 154 2010-01-24T21:22:50Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer hasscript(object, string);<br> integer hasScript(object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location getRelayLoc(object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer getAccountNum(object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 170 163 2010-01-24T22:02:07Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer hasscript(object, string);<br> integer hasScript(object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location getRelayLoc(object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> Objtoint 0 38 150 2010-01-24T20:43:30Z Batlin 3 Created page with 'integer '''objtoint'''(object ''AnyObject''); This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or...' wikitext text/x-wiki integer '''objtoint'''(object ''AnyObject''); This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or not. 151 150 2010-01-24T20:43:49Z Batlin 3 Protected "[[Objtoint]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''objtoint'''(object ''AnyObject''); This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or not. Strtoi 0 39 152 2010-01-24T20:45:29Z Batlin 3 Created page with 'integer '''strtoi'''(string ''AnyString''); Converts a string to a signed integer. This is implemented by using the ''atoi'' C function.' wikitext text/x-wiki integer '''strtoi'''(string ''AnyString''); Converts a string to a signed integer. This is implemented by using the ''atoi'' C function. 153 152 2010-01-24T20:45:52Z Batlin 3 Protected "[[Strtoi]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''strtoi'''(string ''AnyString''); Converts a string to a signed integer. This is implemented by using the ''atoi'' C function. Strlen 0 40 155 2010-01-24T20:48:04Z Batlin 3 Created page with 'integer '''strlen'''(string ''AnyString''); Returns the length of a string in characters. This is implemented internally by calling the ''strlen'' C function.' wikitext text/x-wiki integer '''strlen'''(string ''AnyString''); Returns the length of a string in characters. This is implemented internally by calling the ''strlen'' C function. 156 155 2010-01-24T20:48:10Z Batlin 3 Protected "[[Strlen]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''strlen'''(string ''AnyString''); Returns the length of a string in characters. This is implemented internally by calling the ''strlen'' C function. NULL 0 41 157 2010-01-24T21:00:48Z Batlin 3 Created page with 'object '''NULL'''(void); This returns an object with a fixed serial of 0. It is important to note that this is a function so you must use it with round brackets (). This is diff...' wikitext text/x-wiki object '''NULL'''(void); This returns an object with a fixed serial of 0. It is important to note that this is a function so you must use it with round brackets (). This is different from the C language! Therefor the following 2 code examples are equal: <code><pre>// Example 1 if(getWeapon(this) == NULL () ) // Notice the () after NULL !!! { systemMessage(this, "I am unarmed!"); } else { systemMessage(this, "I am armed!"); } </pre></code> <code><pre> // Example 2 if(objtoint(getWeapon(this)) == 0) { systemMessage(this, "I am unarmed!"); } else { systemMessage(this, "I am armed!"); } </pre></code> 158 157 2010-01-24T21:00:54Z Batlin 3 Protected "[[NULL]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki object '''NULL'''(void); This returns an object with a fixed serial of 0. It is important to note that this is a function so you must use it with round brackets (). This is different from the C language! Therefor the following 2 code examples are equal: <code><pre>// Example 1 if(getWeapon(this) == NULL () ) // Notice the () after NULL !!! { systemMessage(this, "I am unarmed!"); } else { systemMessage(this, "I am armed!"); } </pre></code> <code><pre> // Example 2 if(objtoint(getWeapon(this)) == 0) { systemMessage(this, "I am unarmed!"); } else { systemMessage(this, "I am armed!"); } </pre></code> Abs 0 42 159 2010-01-24T21:09:24Z Batlin 3 Created page with 'integer '''abs'''(integer ''AnyInteger''); This returns the absolute value of an integer. Integers range from −2147483648 to +2147483647. Please note that abs(-2147483648) wil...' wikitext text/x-wiki integer '''abs'''(integer ''AnyInteger''); This returns the absolute value of an integer. Integers range from −2147483648 to +2147483647. Please note that abs(-2147483648) will return -2147483648 since its absolute value 2147483648 is outside the range of the integer type. <code><pre> if( abs(−2147483647) == 2147483647 ) { systemMessage(this, "abs() test succeeded"); } else { systemMessage(this, "abs() test failed"); } </pre></code> 160 159 2010-01-24T21:09:39Z Batlin 3 Protected "[[Abs]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) [cascading] wikitext text/x-wiki integer '''abs'''(integer ''AnyInteger''); This returns the absolute value of an integer. Integers range from −2147483648 to +2147483647. Please note that abs(-2147483648) will return -2147483648 since its absolute value 2147483648 is outside the range of the integer type. <code><pre> if( abs(−2147483647) == 2147483647 ) { systemMessage(this, "abs() test succeeded"); } else { systemMessage(this, "abs() test failed"); } </pre></code> ObjToStr 0 43 161 2010-01-24T21:13:34Z Batlin 3 Created page with 'string '''objToStr'''(object AnyObject''Italic text''); This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an un...' wikitext text/x-wiki string '''objToStr'''(object AnyObject''Italic text''); This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an unsigned integer ranging from 0 to 4294967295. No check is made to see if the object actually exists or not. 162 161 2010-01-24T21:13:41Z Batlin 3 Protected "[[ObjToStr]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki string '''objToStr'''(object AnyObject''Italic text''); This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an unsigned integer ranging from 0 to 4294967295. No check is made to see if the object actually exists or not. GetPulseNum 0 44 164 2010-01-24T21:25:08Z Batlin 3 Created page with 'integer '''getPulseNum'''(void); The Pulse Number is the current tick the server is in. One tick is around 250 milliseconds (depending on the server load a tick can be longer th...' wikitext text/x-wiki integer '''getPulseNum'''(void); The Pulse Number is the current tick the server is in. One tick is around 250 milliseconds (depending on the server load a tick can be longer than 250ms). The Pulse Number is reset to 0 every time the server starts. 165 164 2010-01-24T21:25:20Z Batlin 3 Protected "[[GetPulseNum]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''getPulseNum'''(void); The Pulse Number is the current tick the server is in. One tick is around 250 milliseconds (depending on the server load a tick can be longer than 250ms). The Pulse Number is reset to 0 every time the server starts. IsEditing 0 45 166 2010-01-24T21:28:27Z Batlin 3 Created page with 'integer '''isEditing'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwis...' wikitext text/x-wiki integer '''isEditing'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwise 1 is returned. Editing Mode can only be obtained by connecting to the demo server with a GOD client. This involves sending Packet 0x04. 167 166 2010-01-24T21:28:44Z Batlin 3 Protected "[[IsEditing]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''isEditing'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwise 1 is returned. Editing Mode can only be obtained by connecting to the demo server with a GOD client. This involves sending Packet 0x04. GetPlayAge 0 46 168 2010-01-24T21:45:03Z Batlin 3 Created page with 'integer '''getPlayAge'''(object ''PlayerObject''); This function will return the player's (character's) age. The play age is only increased every 2048 ticks or ±8.5 minutes.' wikitext text/x-wiki integer '''getPlayAge'''(object ''PlayerObject''); This function will return the player's (character's) age. The play age is only increased every 2048 ticks or ±8.5 minutes. 169 168 2010-01-24T21:45:12Z Batlin 3 Protected "[[GetPlayAge]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''getPlayAge'''(object ''PlayerObject''); This function will return the player's (character's) age. The play age is only increased every 2048 ticks or ±8.5 minutes. GetAccountNum 0 47 171 2010-01-24T22:08:43Z Batlin 3 Created page with 'integer '''getAccountNum'''(object PlayerObject); getAccountNum returns the account number of a player object (character). If no valid player object was provided then the functi...' wikitext text/x-wiki integer '''getAccountNum'''(object PlayerObject); getAccountNum returns the account number of a player object (character). If no valid player object was provided then the function will return 0. Normally, the Avatar character has a fixed account number of 2130706433. For "UoDemo+, Publish 14 and upwards" Server Operators you can use the following pseudo-check to detect yourself (if you didn't override the account number that is): <code><pre> if( getAccountNum( player_to_check ) == 2130706433 ) { systemMessage("I am the one running UoDemo+, Publish 14."); } </pre></code> GetAccountNum 0 47 172 171 2010-01-24T22:08:53Z Batlin 3 Protected "[[GetAccountNum]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''getAccountNum'''(object PlayerObject); getAccountNum returns the account number of a player object (character). If no valid player object was provided then the function will return 0. Normally, the Avatar character has a fixed account number of 2130706433. For "UoDemo+, Publish 14 and upwards" Server Operators you can use the following pseudo-check to detect yourself (if you didn't override the account number that is): <code><pre> if( getAccountNum( player_to_check ) == 2130706433 ) { systemMessage("I am the one running UoDemo+, Publish 14."); } </pre></code> 173 172 2010-01-24T22:15:36Z Batlin 3 wikitext text/x-wiki integer '''getAccountNum'''(object PlayerObject); getAccountNum returns the account number of a player object (character). If no valid player object was provided then the function will return 0. Normally, the Avatar character has a fixed account number of 2130706433. "UoDemo+, Publish 14 and upwards" Server Operators can use the following check to detect themselves (if they didn't override the account number that is): <code><pre>// Example Code if( getAccountNum( player_to_check ) == 2130706433 ) { systemMessage("I am the one running UoDemo+, Publish 14."); } </pre></code> 179 173 2010-01-25T10:21:16Z Batlin 3 wikitext text/x-wiki integer '''getAccountNum'''(object PlayerObject); getAccountNum returns the account number of a player object (character). If no valid player object was provided then the function will return 0. Normally, the demo's Avatar account has a fixed account number of 2130706433. "UoDemo+, Publish 14 and upwards" Server Operators can use the following check to detect themselves (if they didn't override the account number that is): <code><pre>// Example Code if( getAccountNum( player_to_check ) == 2130706433 ) { systemMessage("I am the one running UoDemo+, Publish 14."); } </pre></code> Return to the [[Command List]]. Command List 0 37 174 170 2010-01-24T22:23:56Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer hasscript(object, string);<br> integer hasScript(object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 191 174 2010-01-25T10:43:21Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer hasscript(object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 193 191 2010-01-25T10:49:28Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer isMobile(object);<br> integer isPlayer(object);<br> integer isSpellbook(object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer isNPC(object);<br> integer isOwnedPet(object);<br> integer isShopKeeper(object);<br> integer isGuard(object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer isOnline(object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 194 193 2010-01-25T11:29:18Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer isCounselor(object);<br> integer isGameMaster(object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 211 194 2010-01-25T12:17:14Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 215 211 2010-01-25T18:06:02Z Batlin 3 wikitext text/x-wiki This Command List it not sorted or grouped in any special way other then the order they appear in the executable. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those reads better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer isInMap(location);<br> integer isInWorld(location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 216 215 2010-01-25T20:53:20Z Batlin 3 wikitext text/x-wiki This Command List it not sorted or grouped in any special way other then the order they appear in the executable. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer getX(location);<br> integer getY(location);<br> integer getZ(location);<br> void setX(location &, integer);<br> void setY(location &, integer);<br> void setZ(location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> GetRelayLoc 0 48 175 2010-01-24T23:20:15Z Batlin 3 Created page with 'location '''getRelayLoc'''(object ''UnusedObject''); The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be...' wikitext text/x-wiki location '''getRelayLoc'''(object ''UnusedObject''); The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be NULL(). Also see: [[Server.txt]] 176 175 2010-01-24T23:20:22Z Batlin 3 Protected "[[GetRelayLoc]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki location '''getRelayLoc'''(object ''UnusedObject''); The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be NULL(). Also see: [[Server.txt]] 188 176 2010-01-25T10:27:11Z Batlin 3 wikitext text/x-wiki location '''getRelayLoc'''(object ''UnusedObject''); The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be NULL(). Also see: [[Server.txt]] Return to the [[Command List]]. 189 188 2010-01-25T10:27:47Z Batlin 3 wikitext text/x-wiki location '''getRelayLoc'''(object ''UnusedObject''); The getRelayLoc functions returns a "location" variable with the X and Y found in .rundir\%SERVERNAME%\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be [[NULL]](). Also see: [[Server.txt]] Return to the [[Command List]]. Scripts 0 12 177 79 2010-01-25T10:19:51Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. A decompiler can be found here : [[Mass M Decompiler]].<br> A list with commands that scripts can use can be found here : [[Command List]] The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfuscation works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br> Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br> ---- '''This is a list of supported tokens:'''<br> 0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br> 0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br> 0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br> 0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br> 0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br> 0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br> 0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br> 0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br> 0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br> 0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br> 0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br> 0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br> 0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br> 0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br> 0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br> 0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br> 0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br> 0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br> 0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br> 0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br> 0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br> 0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br> 0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br> 0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br> 0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br> 0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br> 0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br> 0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br> 0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br> 0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br> 0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br> 0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br> 0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br> 0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br> 0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br> 0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br> 0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br> 0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br> 0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br> 0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br> 0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br> 0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br> 0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br> 0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br> 0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable at script level"<br> 0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br> 0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br> 0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br> 0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br> 0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br> 0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br> 0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br> NOTE: if you include a script it must the very first statement and you can only include one script per script! '''This is a list of supported but unused tokens:'''<br> 0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br> NOTE: this means you could create a script that supports XOR (none of the OSI scripts do this) '''This is a list of defined but unsupported tokens:'''<br> 0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br> 0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br> 0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br> 0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br> 0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br> NOTE: the ENDxxx statements are only used internally and are added by the parser where needed '''This is a list of obfuscated but unsupported tokens:'''<br> 0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br> 0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br> 0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br> 0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br> 0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br> 0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br> 0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br> ---- The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement]. Abs 0 42 178 160 2010-01-25T10:20:37Z Batlin 3 wikitext text/x-wiki integer '''abs'''(integer ''AnyInteger''); This returns the absolute value of an integer. Integers range from −2147483648 to +2147483647. Please note that abs(-2147483648) will return -2147483648 since its absolute value 2147483648 is outside the range of the integer type. <code><pre> if( abs(−2147483647) == 2147483647 ) { systemMessage(this, "abs() test succeeded"); } else { systemMessage(this, "abs() test failed"); } </pre></code> Return to the [[Command List]]. GetPlayAge 0 46 180 169 2010-01-25T10:21:36Z Batlin 3 wikitext text/x-wiki integer '''getPlayAge'''(object ''PlayerObject''); This function will return the player's (character's) age. The play age is only increased every 2048 ticks or ±8.5 minutes. Return to the [[Command List]]. IsEditing 0 45 181 167 2010-01-25T10:23:44Z Batlin 3 wikitext text/x-wiki integer '''isEditing'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwise 1 is returned. Editing Mode can only be obtained by connecting to the demo server with a GOD client. This involves sending Packet 0x04. Return to the [[Command List]]. 210 181 2010-01-25T11:43:49Z Batlin 3 wikitext text/x-wiki integer '''isEditing'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Editing Mode, otherwise 1 is returned. Editing Mode can only be obtained by connecting to the demo server with a GOD client. This involves sending Packet 0x04. Internal Info: isEditing == Player->pflags & 0x02 Return to the [[Command List]]. GetPulseNum 0 44 182 165 2010-01-25T10:25:31Z Batlin 3 wikitext text/x-wiki integer '''getPulseNum'''(void); The Pulse Number is the current tick the server is in. One tick is around 250 milliseconds (depending on the server load a tick can be longer than 250ms). The Pulse Number is reset to 0 every time the server starts. Return to the [[Command List]]. Strtoi 0 39 183 153 2010-01-25T10:25:42Z Batlin 3 wikitext text/x-wiki integer '''strtoi'''(string ''AnyString''); Converts a string to a signed integer. This is implemented by using the ''atoi'' C function. Return to the [[Command List]]. Objtoint 0 38 184 151 2010-01-25T10:26:06Z Batlin 3 wikitext text/x-wiki integer '''objtoint'''(object ''AnyObject''); This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or not. Return to the [[Command List]]. Strlen 0 40 185 156 2010-01-25T10:26:18Z Batlin 3 wikitext text/x-wiki integer '''strlen'''(string ''AnyString''); Returns the length of a string in characters. This is implemented internally by calling the ''strlen'' C function. Return to the [[Command List]]. NULL 0 41 186 158 2010-01-25T10:26:31Z Batlin 3 wikitext text/x-wiki object '''NULL'''(void); This returns an object with a fixed serial of 0. It is important to note that this is a function so you must use it with round brackets (). This is different from the C language! Therefor the following 2 code examples are equal: <code><pre>// Example 1 if(getWeapon(this) == NULL () ) // Notice the () after NULL !!! { systemMessage(this, "I am unarmed!"); } else { systemMessage(this, "I am armed!"); } </pre></code> <code><pre> // Example 2 if(objtoint(getWeapon(this)) == 0) { systemMessage(this, "I am unarmed!"); } else { systemMessage(this, "I am armed!"); } </pre></code> Return to the [[Command List]]. 187 186 2010-01-25T10:26:46Z Batlin 3 wikitext text/x-wiki object '''NULL'''(void); This returns an object with a fixed serial of 0. It is important to note that this is a function so you must use it with round brackets (). This is different from the C language! Therefor the following 2 code examples are equal: <code><pre>// Example 1 if( getWeapon(this) == NULL () ) // Notice the () after NULL !!! { systemMessage(this, "I am unarmed!"); } else { systemMessage(this, "I am armed!"); } </pre></code> <code><pre> // Example 2 if( objtoint(getWeapon(this)) == 0 ) { systemMessage(this, "I am unarmed!"); } else { systemMessage(this, "I am armed!"); } </pre></code> Return to the [[Command List]]. ObjToStr 0 43 190 162 2010-01-25T10:28:38Z Batlin 3 wikitext text/x-wiki string '''objToStr'''(object AnyObject''Italic text''); This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an unsigned integer ranging from 0 to 4294967295. No check is made to see if the object actually exists or not. Return to the [[Command List]]. HasScript 0 49 192 2010-01-25T10:46:09Z Batlin 3 Created page with 'integer '''hasscript'''(object ''AnyObject'', string ''ScriptName'');<br> integer '''hasScript'''(object ''AnyObject'', string ''ScriptName''); The hasscript/hasScript function ...' wikitext text/x-wiki integer '''hasscript'''(object ''AnyObject'', string ''ScriptName'');<br> integer '''hasScript'''(object ''AnyObject'', string ''ScriptName''); The hasscript/hasScript function will return 1 if the specified object is valid and if it has the script with ''ScriptName'' attached. Otherwise 0 is returned. Return to the [[Command List]]. IsMobile 0 50 195 2010-01-25T11:30:43Z Batlin 3 Created page with 'integer '''isMobile'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a mobile, this includes players, NPC's, guards and shopkeepers. Oth...' wikitext text/x-wiki integer '''isMobile'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a mobile, this includes players, NPC's, guards and shopkeepers. Otherwise 0 is returned. Return to the [[Command List]]. 196 195 2010-01-25T11:30:51Z Batlin 3 Protected "[[IsMobile]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''isMobile'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a mobile, this includes players, NPC's, guards and shopkeepers. Otherwise 0 is returned. Return to the [[Command List]]. 205 196 2010-01-25T11:41:30Z Batlin 3 wikitext text/x-wiki integer '''isMobile'''(object ''AnyObject''); This function will return 1 if the given object is valid and is a mobile, this includes players, NPC's, guards and shopkeepers. Otherwise 0 is returned. Return to the [[Command List]]. IsPlayer 0 51 197 2010-01-25T11:32:19Z Batlin 3 Created page with 'integer '''isPlayer'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a player. Otherwise 0 is returned. Return to the [[Command List]]...' wikitext text/x-wiki integer '''isPlayer'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a player. Otherwise 0 is returned. Return to the [[Command List]]. 198 197 2010-01-25T11:32:25Z Batlin 3 Protected "[[IsPlayer]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''isPlayer'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a player. Otherwise 0 is returned. Return to the [[Command List]]. 206 198 2010-01-25T11:41:45Z Batlin 3 wikitext text/x-wiki integer '''isPlayer'''(object ''AnyObject''); This function will return 1 if the given object is valid and is a player. Otherwise 0 is returned. Return to the [[Command List]]. IsNPC 0 52 199 2010-01-25T11:33:04Z Batlin 3 Created page with 'integer '''isNPC'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a NPC, this includes guards and shopkeepers. Otherwise 0 is returned. ...' wikitext text/x-wiki integer '''isNPC'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a NPC, this includes guards and shopkeepers. Otherwise 0 is returned. Return to the [[Command List]]. 200 199 2010-01-25T11:33:08Z Batlin 3 Protected "[[IsNPC]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''isNPC'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a NPC, this includes guards and shopkeepers. Otherwise 0 is returned. Return to the [[Command List]]. 207 200 2010-01-25T11:42:03Z Batlin 3 wikitext text/x-wiki integer '''isNPC'''(object ''AnyObject''); This function will return 1 if the given object is valid and is a NPC, this includes guards and shopkeepers. Otherwise 0 is returned. Return to the [[Command List]]. IsShopKeeper 0 53 201 2010-01-25T11:33:45Z Batlin 3 Created page with 'integer '''isShopKeeper'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a shopkeeper. Otherwise 0 is returned. Return to the [[Comman...' wikitext text/x-wiki integer '''isShopKeeper'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a shopkeeper. Otherwise 0 is returned. Return to the [[Command List]]. 208 201 2010-01-25T11:42:14Z Batlin 3 wikitext text/x-wiki integer '''isShopKeeper'''(object ''AnyObject''); This function will return 1 if the given object is valid and is a shopkeeper. Otherwise 0 is returned. Return to the [[Command List]]. IsGuard 0 54 202 2010-01-25T11:34:04Z Batlin 3 Created page with 'integer '''isGuard'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a guard. Otherwise 0 is returned. Return to the [[Command List]].' wikitext text/x-wiki integer '''isGuard'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a guard. Otherwise 0 is returned. Return to the [[Command List]]. 203 202 2010-01-25T11:34:09Z Batlin 3 Protected "[[IsGuard]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''isGuard'''(object [[AnyObject]]); This function will return 1 if the given object is valid and is a guard. Otherwise 0 is returned. Return to the [[Command List]]. 209 203 2010-01-25T11:42:25Z Batlin 3 wikitext text/x-wiki integer '''isGuard'''(object ''AnyObject''); This function will return 1 if the given object is valid and is a guard. Otherwise 0 is returned. Return to the [[Command List]]. IsOnline 0 55 204 2010-01-25T11:41:07Z Batlin 3 Created page with 'integer '''isOnline'''(object ''PlayerObject''); This function will return 1 if the given object is a valid player object and if that player is online. Otherwise 0 is returned. ...' wikitext text/x-wiki integer '''isOnline'''(object ''PlayerObject''); This function will return 1 if the given object is a valid player object and if that player is online. Otherwise 0 is returned. Because a player object is required, passing any other object like NPC's will result in a return value of 0. Internal Info: isOnline == Player->pflags & 0x04 Return to the [[Command List]]. IsCounselor 0 56 212 2010-01-25T12:20:36Z Batlin 3 Created page with 'integer '''isCounselor'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Counselor Mode, othe...' wikitext text/x-wiki integer '''isCounselor'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Counselor Mode, otherwise 1 is returned. Counselor Mode can only be obtained by using a patch: [[uodemo+|UoDemo+ (Publish 12 or later)]]. Internal Info: isCounselor == Player->pflags & 0x8000 Return to the [[Command List]]. IsGameMaster 0 57 213 2010-01-25T12:22:13Z Batlin 3 Created page with 'integer '''isGameMaster'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Game Master Mode, o...' wikitext text/x-wiki integer '''isGameMaster'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Game Master Mode, otherwise 1 is returned. Code to become a Game Master is available in the demo core but so far no effort has been done to re-enable this code. Internal Info: isGameMaster == Player->pflags & 0x1000 Return to the [[Command List]]. IsSpellbook 0 58 214 2010-01-25T12:26:26Z Batlin 3 Created page with 'integer '''isSpellbook'''(object ''AnyObject''); This function will return 1 if the given object is valid and is a spellbook. Return to the [[Command List]].' wikitext text/x-wiki integer '''isSpellbook'''(object ''AnyObject''); This function will return 1 if the given object is valid and is a spellbook. Return to the [[Command List]]. IsInWorld 0 59 217 2010-01-25T20:56:01Z Batlin 3 Created page with 'integer '''isInWorld'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are between respectively 0 and 6143 and 0 and 4095. Othe...' wikitext text/x-wiki integer '''isInWorld'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are between respectively 0 and 6143 and 0 and 4095. Otherwise 0 is returned. Return to the [[Command List]]. 220 217 2010-01-25T21:00:48Z Batlin 3 wikitext text/x-wiki integer '''isInWorld'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are between respectively 0 and 6143 and 0 and 4095. Otherwise 0 is returned. The Z coordinate of LocationToCheck is ignored. Return to the [[Command List]]. 221 220 2010-01-25T21:00:53Z Batlin 3 Protected "[[IsInWorld]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''isInWorld'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are between respectively 0 and 6143 and 0 and 4095. Otherwise 0 is returned. The Z coordinate of LocationToCheck is ignored. Return to the [[Command List]]. IsInMap 0 60 218 2010-01-25T20:59:56Z Batlin 3 Created page with 'integer '''isInMap'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are in the map. A map is the area a server is controlling....' wikitext text/x-wiki integer '''isInMap'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are in the map. A map is the area a server is controlling. The begin coordinates and the size of the map are defined by the .rundir\%SERVERNAME%\server.txt file, see: [[server.txt]]. You can also use the ''getRelayLoc'' script function to get the begin coordinates of the server map. There is no function that gives you the size of the map though. The Z coordinate of ''LocationToCheck'' is ignored. Return to the [[Command List]]. 219 218 2010-01-25T21:00:08Z Batlin 3 Protected "[[IsInMap]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''isInMap'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are in the map. A map is the area a server is controlling. The begin coordinates and the size of the map are defined by the .rundir\%SERVERNAME%\server.txt file, see: [[server.txt]]. You can also use the ''getRelayLoc'' script function to get the begin coordinates of the server map. There is no function that gives you the size of the map though. The Z coordinate of ''LocationToCheck'' is ignored. Return to the [[Command List]]. IsInMap 0 60 222 219 2010-01-25T21:02:51Z Batlin 3 wikitext text/x-wiki integer '''isInMap'''(location ''LocationToCheck''); This function will return 1 if the X and Y of ''LocationToCheck'' are in the map. A map is the area that the OSI/demo server is controlling. The begin coordinates and the size of the map are defined by the .rundir\%SERVERNAME%\server.txt file, see: [[server.txt]]. You can also use the [[getRelayLoc]] script function to get the begin coordinates of the server map. There is no function that gives you the size of the map though. The Z coordinate of ''LocationToCheck'' is ignored. Return to the [[Command List]]. Command List 0 37 223 216 2010-01-26T12:15:47Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki This Command List it not sorted or grouped in any special way other then the order they appear in the executable. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void makeDice(string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 241 223 2010-01-26T21:54:20Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki This Command List it not sorted or grouped in any special way other then the order they appear in the executable. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer isVirtueGuard(object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 247 241 2010-01-27T09:37:45Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki This Command List it not sorted or grouped in any special way other then the order they appear in the executable. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 263 247 2010-03-11T22:56:14Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer getTimeSecs(void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void getCurrentTimeStr(string);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 264 263 2010-03-13T20:23:33Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer getDistanceInTiles(location, location);<br> string getDistance(location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 268 264 2010-04-14T22:21:40Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer isValid(object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 275 268 2010-06-14T21:01:20Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer eatObject(object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 278 275 2010-06-25T09:52:26Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer getCompileFlag(integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> GetX 0 61 224 2010-01-26T12:19:11Z Batlin 3 Created page with 'integer '''getX'''(location ''LocationObject''); Use this function to retreive the X coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]...' wikitext text/x-wiki integer '''getX'''(location ''LocationObject''); Use this function to retreive the X coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. 225 224 2010-01-26T12:19:22Z Batlin 3 Protected "[[GetX]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''getX'''(location ''LocationObject''); Use this function to retreive the X coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. GetY 0 62 226 2010-01-26T12:19:35Z Batlin 3 Created page with 'integer '''getY'''(location ''LocationObject''); Use this function to retreive the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]...' wikitext text/x-wiki integer '''getY'''(location ''LocationObject''); Use this function to retreive the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. 227 226 2010-01-26T12:19:42Z Batlin 3 Protected "[[GetY]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''getY'''(location ''LocationObject''); Use this function to retreive the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. GetZ 0 63 228 2010-01-26T12:19:55Z Batlin 3 Created page with 'integer '''getZ'''(location ''LocationObject''); Use this function to retreive the Z coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]...' wikitext text/x-wiki integer '''getZ'''(location ''LocationObject''); Use this function to retreive the Z coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. SetX 0 64 229 2010-01-26T12:20:29Z Batlin 3 Created page with 'integer '''setX'''(location ''LocationObject''); Use this function to change the X coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]].' wikitext text/x-wiki integer '''setX'''(location ''LocationObject''); Use this function to change the X coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. 230 229 2010-01-26T12:20:34Z Batlin 3 Protected "[[SetX]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''setX'''(location ''LocationObject''); Use this function to change the X coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. 235 230 2010-01-26T12:25:02Z Batlin 3 wikitext text/x-wiki integer '''setX'''(location ''LocationObject'', integer ''NewX''); Use this function to change the X coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. SetY 0 65 231 2010-01-26T12:20:46Z Batlin 3 Created page with 'integer '''setY'''(location ''LocationObject''); Use this function to change the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]].' wikitext text/x-wiki integer '''setY'''(location ''LocationObject''); Use this function to change the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. 232 231 2010-01-26T12:20:54Z Batlin 3 Protected "[[SetY]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''setY'''(location ''LocationObject''); Use this function to change the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. 236 232 2010-01-26T12:25:12Z Batlin 3 wikitext text/x-wiki integer '''setY'''(location ''LocationObject'', integer ''NewX''); Use this function to change the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. 238 236 2010-01-26T12:25:36Z Batlin 3 wikitext text/x-wiki integer '''setY'''(location ''LocationObject'', integer ''NewY''); Use this function to change the Y coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. SetZ 0 66 233 2010-01-26T12:21:06Z Batlin 3 Created page with 'integer '''setZ'''(location ''LocationObject''); Use this function to change the Z coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]].' wikitext text/x-wiki integer '''setZ'''(location ''LocationObject''); Use this function to change the Z coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. 234 233 2010-01-26T12:21:11Z Batlin 3 Protected "[[SetZ]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''setZ'''(location ''LocationObject''); Use this function to change the Z coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. 237 234 2010-01-26T12:25:25Z Batlin 3 wikitext text/x-wiki integer '''setZ'''(location ''LocationObject'', integer ''NewZ''); Use this function to change the Z coordinate of a location object (which consists of X, Y, Z). Return to the [[Command List]]. GetRelayLoc 0 48 239 189 2010-01-26T19:30:09Z Batlin 3 wikitext text/x-wiki location '''getRelayLoc'''(object ''UnusedObject''); The getRelayLoc function returns a location variable with the X and Y found in .rundir\[[SERVERNAME|%SERVERNAME%]]\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be [[NULL]](). Also see: [[Server.txt]] Return to the [[Command List]]. 240 239 2010-01-26T19:30:32Z Batlin 3 wikitext text/x-wiki location '''getRelayLoc'''(object ''UnusedObject''); The getRelayLoc function returns a location variable with the X and Y found in .rundir\[[SERVERNAME|%SERVERNAME%]]\server.txt, Z will be 0. Basically it wlll return the upper-left coordinate of the server map. This function takes an object as parameter but this object is ignored and can be [[NULL]](). Also see: [[server.txt]] Return to the [[Command List]]. MakeDice 0 67 242 2010-01-26T22:11:45Z Batlin 3 Created page with 'void '''makeDice'''(string &''ResultString'', string ''PrependString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum''); The makeDice functio...' wikitext text/x-wiki void '''makeDice'''(string &''ResultString'', string ''PrependString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum''); The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string. Notes:<br>''Rolls'' is only appended if it's non-zero and when appended it is always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero. Examples:<br> <code><pre> string test = "Empty String"; makeDice(test, "My Test Dice: ", 5, 8, "!", 0 - 5); -> "My Test Dice: 5d8!-5" </pre></code> <code><pre> string test; makeDice(test, "My Test Dice: ", 5, 0, "", 5); -> "My Test Dice: 5" </pre></code> <code><pre> string test = ""; makeDice(test, "My Test Dice: ", 5, 0, "+", 5); -> "My Test Dice: 5+5" </pre></code> 243 242 2010-01-26T22:12:40Z Batlin 3 wikitext text/x-wiki void '''makeDice'''(string &''ResultString'', string ''PrependString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum''); The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string. Notes:<br>''Rolls'' is only appended if it's non-zero and when appended it is always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero. Examples:<br> <code><pre> string test = "Empty String"; makeDice(test, "My Test Dice: ", 5, 8, "!", 0 - 5); -> "My Test Dice: 5d8!-5" </pre></code> <code><pre> string test; makeDice(test, "My Test Dice: ", 5, 0, "", 5); -> "My Test Dice: 5" </pre></code> <code><pre> string test = ""; makeDice(test, "My Test Dice: ", 5, 0, "+", 5); -> "My Test Dice: 5+5" </pre></code> Return to the [[Command List]]. 244 243 2010-01-26T22:12:45Z Batlin 3 Protected "[[MakeDice]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki void '''makeDice'''(string &''ResultString'', string ''PrependString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum''); The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string. Notes:<br>''Rolls'' is only appended if it's non-zero and when appended it is always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero. Examples:<br> <code><pre> string test = "Empty String"; makeDice(test, "My Test Dice: ", 5, 8, "!", 0 - 5); -> "My Test Dice: 5d8!-5" </pre></code> <code><pre> string test; makeDice(test, "My Test Dice: ", 5, 0, "", 5); -> "My Test Dice: 5" </pre></code> <code><pre> string test = ""; makeDice(test, "My Test Dice: ", 5, 0, "+", 5); -> "My Test Dice: 5+5" </pre></code> Return to the [[Command List]]. 245 244 2010-01-26T22:17:57Z Batlin 3 wikitext text/x-wiki void '''makeDice'''(string &''ResultString'', string ''InitialString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix', integer ''Minimum''); The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string. Notes:<br>''Sides'' is only appended if it's non-zero and when appended it's always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero. Examples:<br> <code><pre> string test = "Empty String"; makeDice(test, "Test Dice A: ", 5, 8, "!", 0 - 5); -> "Test Dice A: 5d8!-5" </pre></code> <code><pre> string test; makeDice(test, "Test Dice B: ", 5, 0, "", 9999); -> "Test Dice B: 5" </pre></code> <code><pre> string test = ""; makeDice(test, "", 5, 0, "+", 5); -> "5+5" </pre></code> Return to the [[Command List]]. 246 245 2010-01-26T22:19:52Z Batlin 3 wikitext text/x-wiki void '''makeDice'''(string &''ResultString'', string ''InitialString'', integer ''Rolls'', integer ''Sides'', string ''MinimumPrefix'', integer ''Minimum''); The makeDice function will convert the dice parameters (''Rolls'', ''Sides'' and ''Minimum'') to a string. Notes:<br>''Sides'' is only appended if it's non-zero and when appended it's always prefixed by a "d" character.<br>''Minimum'' is only appended if ''MinimumPrefix'' is not an empty string and if ''Minimum'' itself is non-zero. Examples:<br> <code><pre> string test = "Empty String"; makeDice(test, "Test Dice A: ", 5, 8, "!", 0 - 5); -> "Test Dice A: 5d8!-5" </pre></code> <code><pre> string test; makeDice(test, "Test Dice B: ", 5, 0, "", 9999); -> "Test Dice B: 5" </pre></code> <code><pre> string test = ""; makeDice(test, "", 5, 0, "+", 5); -> "5+5" </pre></code> Return to the [[Command List]]. IsVirtueGuard 0 68 248 2010-01-27T09:44:53Z Batlin 3 Created page with 'integer '''isVirtueGuard'''(object ''MobileObject''); This function will return 1 if the given mobile is valid and is either an "order guard" or a "chaos guard". Otherwise 0 is ...' wikitext text/x-wiki integer '''isVirtueGuard'''(object ''MobileObject''); This function will return 1 if the given mobile is valid and is either an "order guard" or a "chaos guard". Otherwise 0 is returned. The following 2 code samples are equal: <code><pre> if(isVirtueGuard(this)) { systemMessage(this, "I am a virtue guard."); } else { systemMessage(this, "I am not a virtue guard."); } </pre></code> <code><pre> if(isOrderGuard(this) || isChaosGuard(this)) { systemMessage(this, "I am a virtue guard."); } else { systemMessage(this, "I am not a virtue guard."); } </pre></code> Return to the [[Command List]]. 249 248 2010-01-27T09:45:18Z Batlin 3 Protected "[[IsVirtueGuard]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''isVirtueGuard'''(object ''MobileObject''); This function will return 1 if the given mobile is valid and is either an "order guard" or a "chaos guard". Otherwise 0 is returned. The following 2 code samples are equal: <code><pre> if(isVirtueGuard(this)) { systemMessage(this, "I am a virtue guard."); } else { systemMessage(this, "I am not a virtue guard."); } </pre></code> <code><pre> if(isOrderGuard(this) || isChaosGuard(this)) { systemMessage(this, "I am a virtue guard."); } else { systemMessage(this, "I am not a virtue guard."); } </pre></code> Return to the [[Command List]]. Uodemo+ 0 15 250 141 2010-02-15T12:21:10Z Batlin 3 wikitext text/x-wiki A list of supported environment variables:<br> Publish 15+: UODEMODLL = <filename (DLL file)><br> Publish 14+: USEACCOUNTNAME = YES/NO<br> Publish 14+: MANUALLOGON = YES/NO<br> Publish 13+: IGNOREDYNIDX0 = YES/NO<br> Publish 12+: REGKEYNAME = <registry key name><br> Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 15 == The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br> == Publish 14 == The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br> == Publish 13 == The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br> == Publish 12 == The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] IsCounselor 0 56 252 212 2010-03-03T08:20:12Z 74.63.201.156 0 8000 wikitext text/x-wiki vfawWL <a href="http://otadrikjgobk.com/">otadrikjgobk</a>, [url=http://zwqyuwjdvpfn.com/]zwqyuwjdvpfn[/url], [link=http://hsygcralvect.com/]hsygcralvect[/link], http://nlhpsxzjzxls.com/ 261 252 2010-03-03T18:06:28Z Derrick 2 Undo revision 252 by [[Special:Contributions/74.63.201.156|74.63.201.156]] ([[User talk:74.63.201.156|Talk]]) wikitext text/x-wiki integer '''isCounselor'''(object ''PlayerObject''); This function will return 0 if the PlayerObject is not a valid player object or if that player is not in Counselor Mode, otherwise 1 is returned. Counselor Mode can only be obtained by using a patch: [[uodemo+|UoDemo+ (Publish 12 or later)]]. Internal Info: isCounselor == Player->pflags & 0x8000 Return to the [[Command List]]. IsOnline 0 55 255 204 2010-03-03T09:04:54Z 38.107.149.14 0 4 wikitext text/x-wiki DpKN8R <a href="http://ewvpearlmiff.com/">ewvpearlmiff</a>, [url=http://uavjuxzptylk.com/]uavjuxzptylk[/url], [link=http://lbqsvtpaocik.com/]lbqsvtpaocik[/link], http://urbxxsxxuqvi.com/ 262 255 2010-03-03T18:06:42Z Derrick 2 Reverted edits by [[Special:Contributions/38.107.149.14|38.107.149.14]] ([[User talk:38.107.149.14|Talk]]) to last version by [[User:Batlin|Batlin]] wikitext text/x-wiki integer '''isOnline'''(object ''PlayerObject''); This function will return 1 if the given object is a valid player object and if that player is online. Otherwise 0 is returned. Because a player object is required, passing any other object like NPC's will result in a return value of 0. Internal Info: isOnline == Player->pflags & 0x04 Return to the [[Command List]]. GetTimeSecs 0 69 265 2010-03-13T20:27:49Z Batlin 3 Created page with 'integer '''getTimeSecs'''(void); This function will the current system time (server time) in milliseconds. This is implemented by using the ''timeGetTime'' Windows Multimedia fu…' wikitext text/x-wiki integer '''getTimeSecs'''(void); This function will the current system time (server time) in milliseconds. This is implemented by using the ''timeGetTime'' Windows Multimedia function, therefor the system time is the time elapsed since Windows was started. Please refer to your Windows (MSDN) documentation for more details and remarks. Return to the [[Command List]]. 267 265 2010-03-14T20:49:04Z Batlin 3 wikitext text/x-wiki integer '''getTimeSecs'''(void); This function will return the current system time (server time) in milliseconds. This is implemented by using the ''timeGetTime'' Windows Multimedia function, therefor the return time is the time elapsed since Windows was started. Please refer to your Windows (MSDN) documentation for more details and remarks. Return to the [[Command List]]. GetCurrentTimeStr 0 70 266 2010-03-13T20:33:45Z Batlin 3 Created page with 'void '''getCurrentTimeStr'''(string &''ResultString''); This function returns the system time as a string in the format ''"%Y-%m-%d %H:%M"'' using the ''strftime'' C function. …' wikitext text/x-wiki void '''getCurrentTimeStr'''(string &''ResultString''); This function returns the system time as a string in the format ''"%Y-%m-%d %H:%M"'' using the ''strftime'' C function. However! The demo server code is bugged here, and will return a randomized time due to a missing call to the required ''time'' C function! This is fixed in UoDemo+ Publish 16 and later. Return to the [[Command List]]. GetDistanceInTiles 0 71 269 2010-04-14T22:33:19Z Batlin 3 Created page with 'integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br> This function will return 9999 if A.x or B.x is greater or equal to 5120. Otherwise the absolute value of t…' wikitext text/x-wiki integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br> This function will return 9999 if A.x or B.x is greater or equal to 5120. Otherwise the absolute value of the difference between A and B is made for both x and y and the highest value of the two is returned. The Z value is ignored when calculating the difference. Pseudo-code (using signed integers):<pre> integer DistanceInTiles(location A, location B) { if(A.x >= 5120 || B.x >= 5120) return 9999; Xdiff = A.x - B.x; ydiff = A.y - B.y; if(xdiff < 0) xdiff = -xdiff; if(ydiff < 0) ydiff = -ydiff; if(A.x < 5120) // OSI-bug (?), A.x is always lower than 5120 { if(5120 - xdiff > xdiff) xdiff = 5120 - xdiff; if(4096 - ydiff > ydiff) ydiff = 4096 - ydiff; } if(xdiff > ydiff) retval = xdiff; else retval = ydiff; return retval; }</pre> Return to the [[Command List]]. 270 269 2010-04-14T22:40:36Z Batlin 3 decompilation fix wikitext text/x-wiki integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br> This function will calculate the absolute value of the difference between A and B (for both x and y) and the highest value of the two is returned. The Z value is ignored when calculating the difference. Pseudo-code (using signed integers):<pre> integer DistanceInTiles(location A, location B) { // NOTE TO SELF: I should clear this up when I'm not so sleepy tmpx = A.x >= 5120 ? 1 : 0; tmpy = B.x >= 5120 ? 1 : 0; if(tmpx ^ tmpy != 0) return 9999; Xdiff = A.x - B.x; ydiff = A.y - B.y; if(xdiff < 0) xdiff = -xdiff; if(ydiff < 0) ydiff = -ydiff; if(A.x < 5120) { if(5120 - xdiff > xdiff) xdiff = 5120 - xdiff; if(4096 - ydiff > ydiff) ydiff = 4096 - ydiff; } if(xdiff > ydiff) retval = xdiff; else retval = ydiff; return retval; }</pre> Return to the [[Command List]]. 271 270 2010-04-14T22:41:23Z Batlin 3 wikitext text/x-wiki integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br> This function will calculate the absolute value of the difference between A and B (for both x and y) and the highest value of the two is returned. The Z value is ignored when calculating the difference. Pseudo-code (using signed integers):<pre> integer getDistanceInTiles(location A, location B) { // NOTE TO SELF: I should clear this up when I'm not so sleepy tmpx = A.x >= 5120 ? 1 : 0; tmpy = B.x >= 5120 ? 1 : 0; if(tmpx ^ tmpy != 0) return 9999; Xdiff = A.x - B.x; ydiff = A.y - B.y; if(xdiff < 0) xdiff = -xdiff; if(ydiff < 0) ydiff = -ydiff; if(A.x < 5120) { if(5120 - xdiff > xdiff) xdiff = 5120 - xdiff; if(4096 - ydiff > ydiff) ydiff = 4096 - ydiff; } if(xdiff > ydiff) retval = xdiff; else retval = ydiff; return retval; }</pre> Return to the [[Command List]]. 272 271 2010-04-14T22:43:39Z Batlin 3 wikitext text/x-wiki integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br> This function will calculate the absolute value of the difference between A and B (for both x and y) and the highest value of the two is returned. The Z value is ignored when calculating the difference. Pseudo-code (using signed integers):<pre> integer getDistanceInTiles(location A, location B) { // NOTE TO SELF: I should explain this better when I'm not so sleepy Ax_is_invalid = A.x >= 5120 ? 1 : 0; Bx_is_invalid = B.x >= 5120 ? 1 : 0; if(Ax_is_invalid ^ Bx_is_invalid != 0) // Indeed, XOR is used here return 9999; Xdiff = A.x - B.x; ydiff = A.y - B.y; if(xdiff < 0) xdiff = -xdiff; if(ydiff < 0) ydiff = -ydiff; if(A.x < 5120) { if(5120 - xdiff > xdiff) xdiff = 5120 - xdiff; if(4096 - ydiff > ydiff) ydiff = 4096 - ydiff; } if(xdiff > ydiff) retval = xdiff; else retval = ydiff; return retval; }</pre> Return to the [[Command List]]. 273 272 2010-04-14T22:44:02Z Batlin 3 Protected "[[GetDistanceInTiles]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki integer '''getDistanceInTiles'''(location ''A'', location ''B'');<br> This function will calculate the absolute value of the difference between A and B (for both x and y) and the highest value of the two is returned. The Z value is ignored when calculating the difference. Pseudo-code (using signed integers):<pre> integer getDistanceInTiles(location A, location B) { // NOTE TO SELF: I should explain this better when I'm not so sleepy Ax_is_invalid = A.x >= 5120 ? 1 : 0; Bx_is_invalid = B.x >= 5120 ? 1 : 0; if(Ax_is_invalid ^ Bx_is_invalid != 0) // Indeed, XOR is used here return 9999; Xdiff = A.x - B.x; ydiff = A.y - B.y; if(xdiff < 0) xdiff = -xdiff; if(ydiff < 0) ydiff = -ydiff; if(A.x < 5120) { if(5120 - xdiff > xdiff) xdiff = 5120 - xdiff; if(4096 - ydiff > ydiff) ydiff = 4096 - ydiff; } if(xdiff > ydiff) retval = xdiff; else retval = ydiff; return retval; }</pre> Return to the [[Command List]]. Templatestable.dat 0 72 274 2010-06-14T19:48:16Z Stuck 5 Created page with '= Templates = placeholder' wikitext text/x-wiki = Templates = placeholder IsValid 0 73 276 2010-06-14T21:02:21Z Batlin 3 Created page with 'integer '''isValid'''(object ''AnyObject''); This function will return 1 if the specified object exists, otherwise the function will return 0. Return to the [[Command List]].' wikitext text/x-wiki integer '''isValid'''(object ''AnyObject''); This function will return 1 if the specified object exists, otherwise the function will return 0. Return to the [[Command List]]. Objtoint 0 38 277 184 2010-06-14T21:03:34Z Batlin 3 wikitext text/x-wiki integer '''objtoint'''(object ''AnyObject''); This function will return the serial (numerical identifier) of any object. No check is made to see if the object actually exists or not. Use the [[isValid]] function to check the validness of an object. Return to the [[Command List]]. EatObject 0 74 279 2010-06-25T09:57:41Z Batlin 3 Created page with 'integer '''eatObject'''(object ''Eater'', object ''Eaten''); This function is not implemented and will therefor do nothing and always return 0. However, from the disassembly it'…' wikitext text/x-wiki integer '''eatObject'''(object ''Eater'', object ''Eaten''); This function is not implemented and will therefor do nothing and always return 0. However, from the disassembly it's clear that this function was ment only to be used by NPC's. Return to the [[Command List]]. GetTimeSecs 0 69 280 267 2010-06-25T22:58:40Z Batlin 3 wikitext text/x-wiki integer '''getTimeSecs'''(void); This is a bug-fixed function as of UoDemo+ Publish 16. This function will return the system time in seconds. This is implemented by using the ''time'' C Library function, therefor the time is the number of seconds elapsed since January 1, 1970. When OSI ported their server code to Windows and merged it with the client code, they made a mistake and replaced the calls to ''time'' with calls to ''timeGetTime''. Thus in the original demo and UoDemo+ up to Publish 15, this function will return the current system time (server time) in milliseconds. This was implemented by using the ''timeGetTime'' Windows Multimedia function, therefor the return time was the time elapsed since Windows was started. Please refer to your Windows (MSDN) documentation for more details and remarks. Return to the [[Command List]]. Mass M Decompiler 0 17 281 138 2010-08-21T21:14:58Z Batlin 3 wikitext text/x-wiki Presenting you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems. How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory. If you need assistance with using the Mass M Decompiler please search or post your question at JoinUO : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] '''Current:'''<br> [http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%203).zip Download Mass M Decompiler (Publish 3)].<br> NOTE: This version uses the UO Demo SDK and also fixed a bug related with the decompilation of the targetloc event, this bug was reported by Garret of [http://www.ruosi.org ruosi.org]. '''Archived:'''<br> [http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br> NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents [http://download.joinuo.com/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)]. Technical information about the M files can be found [[scripts|here]]. Command List 0 37 282 278 2010-09-08T09:25:14Z Batlin 3 /* All Public Functions: */ wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer isMurderer(object);<br> integer getMurderCount(object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 284 282 2010-09-08T09:56:11Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer getSex(object);<br> integer sameSex(object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string getHeShe(object);<br> string getHimHer(object);<br> string getHisHer(object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 289 284 2010-09-13T10:44:10Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void callback(object, integer, integer);<br> void callBack(object, integer, integer);<br> void shortcallback(object, integer, integer);<br> void shortCallback(object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 295 289 2010-09-22T22:32:01Z Derrick 2 Links to callback functions wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void removePrefix(string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 322 295 2011-06-02T23:55:33Z Derrick 2 linked removePrefix wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer getDecayMax(object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer getDefaultDieDecay(void);<br> integer getDecayInternval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void setDecayTest(integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 328 322 2011-08-11T20:04:12Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer isOwnedPet(object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> GetCompileFlag 0 75 283 2010-09-08T09:40:00Z Batlin 3 Created page with 'integer '''getCompileFlag'''(string ''Flag''); This function returns information about how the core was compiled. If an invalid flag is given the function will return 0. Flag 1…' wikitext text/x-wiki integer '''getCompileFlag'''(string ''Flag''); This function returns information about how the core was compiled. If an invalid flag is given the function will return 0. Flag 1: returns 1 and indicates "The new reputation system"<br> Flag 2: returns 0 and indicates "No requirement check to buy ship/house deeds"<br> Flag 3: returns the publish number of UoDemo+ as of Publish 16 (older releases will return 0) NOTE: Flag 2 is only checked by these 3 scripts : housedeed, multistuff, shipdeed. Return to the [[Command List]]. IsMurderer 0 76 285 2010-09-08T10:00:02Z Batlin 3 Created page with 'string '''isMurderer'''(object ''AnyObject''); This function will return 1 if the AnyObject has the ''murderCount'' object variable attached and its value is higher or equal tha…' wikitext text/x-wiki string '''isMurderer'''(object ''AnyObject''); This function will return 1 if the AnyObject has the ''murderCount'' object variable attached and its value is higher or equal than 5, otherwise 0 is returned. No attempt is made to verify that the specified object is a mobile. Return to the [[Command List]]. 287 285 2010-09-08T10:03:20Z Batlin 3 wikitext text/x-wiki integer '''isMurderer'''(object ''AnyObject''); This function will return 1 if the AnyObject has the ''murderCount'' object variable attached and its value is higher or equal than 5, otherwise 0 is returned. No attempt is made to verify that the specified object is a mobile. Return to the [[Command List]]. GetMurderCount 0 77 286 2010-09-08T10:02:52Z Batlin 3 Created page with 'integer '''getMurderCount'''(object ''AnyObject''); This function will return the value of the attached ''murderCount'' object variable, if ''murderCount'' is not attached then …' wikitext text/x-wiki integer '''getMurderCount'''(object ''AnyObject''); This function will return the value of the attached ''murderCount'' object variable, if ''murderCount'' is not attached then 0 is returned. No attempt is made to verify that the specified object is a mobile. Return to the [[Command List]]. ObjToStr 0 43 288 190 2010-09-08T10:04:09Z Batlin 3 wikitext text/x-wiki string '''objToStr'''(object ''AnyObject''); This function will return the serial (numerical identifier) of any object as a string. The serial is represented as an unsigned integer ranging from 0 to 4294967295. No check is made to see if the object actually exists or not. Return to the [[Command List]]. GetSex 0 78 290 2010-09-13T10:46:18Z Batlin 3 Created page with 'integer '''getSex'''(object ''Mobile'');<br> The ''getSex'' function will return the sex of a mobile. The returned value can be 0, 1 or 2. 0: the given object is not a valid mo…' wikitext text/x-wiki integer '''getSex'''(object ''Mobile'');<br> The ''getSex'' function will return the sex of a mobile. The returned value can be 0, 1 or 2. 0: the given object is not a valid mobile or is a valid mobile and has a male body type (0x190)<br> 1: the given object is a valid mobile and has a female body type (0x191)<br> 2: the given object is a valid mobile but does not have a male nor a female body type<br> Because the return value 0 indicates both a male or an invalid object/mobile you should use the [[isMobile]] function in your scripts to ensure that the object is valid! Return to the [[Command List]]. SameSex 0 79 291 2010-09-13T11:11:22Z Batlin 3 Created page with 'integer '''sameSex'''(object ''MobileA'', object ''MobileB'');<br> The ''sameSex'' function will return 1 if both mobiles have the same 'sex value', see [[getSex]]. Otherwise 0 …' wikitext text/x-wiki integer '''sameSex'''(object ''MobileA'', object ''MobileB'');<br> The ''sameSex'' function will return 1 if both mobiles have the same 'sex value', see [[getSex]]. Otherwise 0 is returned. Because a 'sex value' of 0 is used for both male mobiles and invalid mobiles, you should use the [[isMobile]] function to validate the objects first to avoid unwanted results! Return to the [[Command List]]. GetHeShe 0 80 292 2010-09-13T11:15:39Z Batlin 3 Created page with 'integer '''getHeShe'''(object ''Mobile'');<br> The ''getHeShe'' function will return a string containing "he", "she" or "it" based on the sex value of a mobile. See [[getSex]]. …' wikitext text/x-wiki integer '''getHeShe'''(object ''Mobile'');<br> The ''getHeShe'' function will return a string containing "he", "she" or "it" based on the sex value of a mobile. See [[getSex]]. sex=0: "he" is returned<br> sex=1: "she" is returned<br> sex=2: "it" is returned<br> If an invalid object/mobile is provided than the string "he" will be returned, see [[getSex]] for more details. Return to the [[Command List]]. GetHimHer 0 81 293 2010-09-13T11:16:34Z Batlin 3 Created page with 'integer '''getHimHer'''(object ''Mobile'');<br> The ''getHimHer'' function will return a string containing "him", "her" or "it" based on the sex value of a mobile. See [[getSex]…' wikitext text/x-wiki integer '''getHimHer'''(object ''Mobile'');<br> The ''getHimHer'' function will return a string containing "him", "her" or "it" based on the sex value of a mobile. See [[getSex]]. sex=0: "him" is returned<br> sex=1: "her" is returned<br> sex=2: "it" is returned<br> If an invalid object/mobile is provided than the string "him" will be returned, see [[getSex]] for more details. Return to the [[Command List]]. GetHisHer 0 82 294 2010-09-13T11:18:05Z Batlin 3 Created page with 'integer '''getHisHer'''(object ''Mobile'');<br> The ''getHisHer'' function will return a string containing "his", "her" or "its" based on the sex value of a mobile. See [[getSex…' wikitext text/x-wiki integer '''getHisHer'''(object ''Mobile'');<br> The ''getHisHer'' function will return a string containing "his", "her" or "its" based on the sex value of a mobile. See [[getSex]]. sex=0: "his" is returned<br> sex=1: "her" is returned<br> sex=2: "its" is returned<br> If an invalid object/mobile is provided than the string "his" will be returned, see [[getSex]] for more details. Return to the [[Command List]]. CallBack 0 83 296 2010-09-22T22:34:22Z Derrick 2 Created page with 'callback(object entity, int seconds, int callbackid) Example: callback(this, 0x04B0, 0x40);' wikitext text/x-wiki callback(object entity, int seconds, int callbackid) Example: callback(this, 0x04B0, 0x40); ShortCallback 0 84 297 2010-09-22T22:35:53Z Derrick 2 Created page with 'shortCallback(object entity, int ticks, int callbackid) Example: shortCallback(this, 0x03, 0x32);' wikitext text/x-wiki shortCallback(object entity, int ticks, int callbackid) Example: shortCallback(this, 0x03, 0x32); Templatestable.dat 0 72 298 274 2010-10-15T14:17:00Z Derrick 2 moved [[Templatestable.dat]] to [[Templatestable]]:&#32;.dat is not an acceptable URL wikitext text/x-wiki = Templates = placeholder 300 298 2010-10-15T15:00:31Z Derrick 2 moved [[Templatestable]] to [[Templatestable.dat]] over redirect: Fixed IIS config, .dat is now allowed wikitext text/x-wiki = Templates = placeholder 310 300 2010-10-15T22:28:22Z Derrick 2 Draft File Description wikitext text/x-wiki = Templates = Much of the Content of UO is defined in this file. Organized into individually numbered templates, the individual templates defined in this file provide the contruction arguments (delarations) for non-generic items, and all templated mobiles (such as NPC's, Monsters, Packs of creatures, Camps, etc.). It is evident from the structure and content of this file that there is much parity between Items and Mobiles. = Template Structure = Each declaration in the file appears on it's own line. Some delarations are are optional and/or repeatable as approptiate for that class of delaration. The general format is as follows, with the individual elements, and value types defined later. <pre> <<ID>> <type <ObjectType> <TypeSpecificID>> [Optional Elements...] <@@@ END @@@> </pre> = Template Elements = One per line, internal whitespace ignored. ==Required Elements== {| class="wikitable" border="1" ! Name !! Format !! Description |- |TemplateID || <<TemplateID>> || The ID of this template |- |Template Type|| <type <ObjectType> <ObjectID>> || The ObjectType of this tempate and the ObjectID |- |End|| <@@@ END @@@> || Marks the end of the template |} ==Optional Elements== R: Repeatable M: NORMAL or SHOPKEEPER I: ITEM Because the NONE type is used as a template overlay, it's assumed all elements are valid for none {| class="wikitable" border="1" ! Name !! Format !! Description !R!!M!!I |- |Region || <region <Value>> || Not fully understood | || X || ? |- |RegionLimit || <regionlimit <Value>> || Not fully understood | || X || ? |- |Job|| <job <UnquotedString>> || A Title of an NPC, displayed after their name | || X || |- |Sex|| <sex <Gender>> || The gender of the NPC (MALE, FEMALE or OTHER) | || X || |- |Name|| <name <Value> > || The "Name List" to use to generate a name for the Object(?) | || X || ? |- |Partial Hue|| <partialhue <HueValue>> || The "partial hue" to apply to the object (vs. "solid hue") | || X || ? |- |Hue|| <hue <HueValue>> || The "solid hue" to apply to the object | || X || ? |- |Quantity|| <quantity <SingleValue>> || Quantity, probably used only when ObjectID represents a stackable item | ? || ? || X |- |ObjVar|| <objvar <Type> <String> <Value> > || An ObjVar to add to the Object | X || X || |- |Script|| <script <String>> || An Script to attach to the Object | X || X || ? |- |sfxNotice|| <sfxnotice <Value>> || Mobile Notice sound ID | || X || |- |sfxIdle|| <sfxidle <Value>> || Mobile Notice sound ID | || X || |- |sfxHit|| <sfxidle <Value>> || Mobile Idle sound ID | || X || |- |sfxWasHit|| <sfxwashit <Value>> || Mobile Took Damage sound ID | || X || |- |sfxDie|| <sfxdie <Value>> || Mobile Died sound ID | || X || |- |ConvFrag|| <convfrag <FragmentName>> || Add Speech Fragment for the Mobile | X || X || |- |Alignment|| <alignment <AlignEntry>> || The Alignment the Mobile (GOOD, NEUTRAL or EVIL) | || X || |- |Notoriety|| <notoriety <SingleValue>> || The Notoriety value of the Mobile (Int or Dice) | || X || |- |Strength|| <strength <SingleValue>> || The Strength value of the Mobile (Int or Dice) | || X || |- |Dexterity|| <dexterity <SingleValue>> || The Dexterity value of the Mobile (Int or Dice) | || X || |- |Intelligence|| <intelligence <SingleValue>> || The Intelligence value of the Mobile (Int or Dice) | || X || |- |HitPoints|| |<hp <SingleValue|"STR">> || The HitPoints value of the Mobile, or use STR as base | || X || |- |Mana|| |<mana <SingleValue|INT>> || The Mana value of the Mobile, or use INT as base | || X || |- |Stamina|| |<stamina <SingleValue|DEX>> || The Stamina value of the Mobile, or use DEX as base | || X || |- |NaturalWC|| <naturalwc <SingleValue>> || The Default Base Damage the NPC delivers when it Hits | || X || |- |NaturalAC|| <naturalac <SingleValue>> || The The Natural Armor Class of the creature | || X || |- |Immunities|| <immunities <ImmunityValue>> || Immunity | X || X || ? |- |Skill|| <sk <SkillValue> <Value>> || Set skill on mobile to value | X || X || |- |Equip|| |<eq <ObjectDefValue> [MAGIC I J K] <HueValue> <Amount> [AT X Y Z] [SELFCONTAINED|SELLABLE|BUYABLE|contained|wear] [poi_cleanup] [sumdeadtemp]> || Add Object | X || X || X |- |Friends|| <friends <TemplateID>> || Identifies "Friends" of this Mobile by template | X || X || |- |Resource|| <resource [food|shelter|production|desire] <Max> <Rate> <ResName>> || Resource declaration | X || X || X |} =Value Definitions= TODO 311 310 2010-10-15T23:05:06Z Derrick 2 /* Optional Elements */ wikitext text/x-wiki = Templates = Much of the Content of UO is defined in this file. Organized into individually numbered templates, the individual templates defined in this file provide the contruction arguments (delarations) for non-generic items, and all templated mobiles (such as NPC's, Monsters, Packs of creatures, Camps, etc.). It is evident from the structure and content of this file that there is much parity between Items and Mobiles. = Template Structure = Each declaration in the file appears on it's own line. Some delarations are are optional and/or repeatable as approptiate for that class of delaration. The general format is as follows, with the individual elements, and value types defined later. <pre> <<ID>> <type <ObjectType> <TypeSpecificID>> [Optional Elements...] <@@@ END @@@> </pre> = Template Elements = One per line, internal whitespace ignored. ==Required Elements== {| class="wikitable" border="1" ! Name !! Format !! Description |- |TemplateID || <<TemplateID>> || The ID of this template |- |Template Type|| <type <ObjectType> <ObjectID>> || The ObjectType of this tempate and the ObjectID |- |End|| <@@@ END @@@> || Marks the end of the template |} ==Optional Elements== R: Repeatable M: NORMAL or SHOPKEEPER I: ITEM Because the NONE type is used as a template overlay, it's assumed all elements are valid for none {| class="wikitable" border="1" ! Name !! Format !! Description !R!!M!!I |- |Region || <region <Value>> || Not fully understood | || X || ? |- |RegionLimit || <regionlimit <Value>> || Not fully understood | || X || ? |- |Job|| <job <UnquotedString>> || A Title of an NPC, displayed after their name | || X || |- |Sex|| <sex <Gender>> || The gender of the NPC (MALE, FEMALE or OTHER) | || X || |- |Name|| <name <Value> > || The "Name List" to use to generate a name for the Object(?) | || X || ? |- |Partial Hue|| <partialhue <HueValue>> || The "partial hue" to apply to the object (vs. "solid hue") | || X || ? |- |Hue|| <hue <HueValue>> || The "solid hue" to apply to the object | || X || ? |- |Quantity|| <quantity <SingleValue>> || Quantity, probably used only when ObjectID represents a stackable item | ? || ? || X |- |ObjVar|| <objvar <Type> <String> <Value> > || An ObjVar to add to the Object | X || X || |- |Script|| <script <String>> || An Script to attach to the Object | X || X || ? |- |sfxNotice|| <sfxnotice <Value>> || Mobile Notice sound ID | || X || |- |sfxIdle|| <sfxidle <Value>> || Mobile Notice sound ID | || X || |- |sfxHit|| <sfxidle <Value>> || Mobile Idle sound ID | || X || |- |sfxWasHit|| <sfxwashit <Value>> || Mobile Took Damage sound ID | || X || |- |sfxDie|| <sfxdie <Value>> || Mobile Died sound ID | || X || |- |ConvFrag|| <convfrag <FragmentName>> || Add Speech Fragment for the Mobile | X || X || |- |Alignment|| <alignment <AlignEntry>> || The Alignment the Mobile (GOOD, NEUTRAL or EVIL) | || X || |- |Notoriety|| <notoriety <SingleValue>> || The Notoriety value of the Mobile (Int or Dice) | || X || |- |Strength|| <strength <SingleValue>> || The Strength value of the Mobile (Int or Dice) | || X || |- |Dexterity|| <dexterity <SingleValue>> || The Dexterity value of the Mobile (Int or Dice) | || X || |- |Intelligence|| <intelligence <SingleValue>> || The Intelligence value of the Mobile (Int or Dice) | || X || |- |HitPoints|| |<hp <SingleValue|STR>> || The HitPoints value of the Mobile, or use STR as base | || X || |- |Mana|| |<mana <SingleValue|INT>> || The Mana value of the Mobile, or use INT as base | || X || |- |Stamina|| |<stamina <SingleValue|DEX>> || The Stamina value of the Mobile, or use DEX as base | || X || |- |NaturalWC|| <naturalwc <SingleValue>> || The Default Base Damage the NPC delivers when it Hits | || X || |- |NaturalAC|| <naturalac <SingleValue>> || The The Natural Armor Class of the creature | || X || |- |Immunities|| <immunities <ImmunityValue>> || Immunity | X || X || ? |- |Skill|| <sk <SkillValue> <SingleValue>> || Set skill on mobile to value | X || X || |- |Equip|| |<eq <ObjectDefValue> [MAGIC I J K] <HueValue> <Amount> [AT X Y Z] [SELFCONTAINED|SELLABLE|BUYABLE|contained|wear] [poi_cleanup] [sumdeadtemp]> || Add Object | X || X || X |- |Friends|| <friends <TemplateID>> || Identifies "Friends" of this Mobile by template | X || X || |- |Resource|| |<resource [food|shelter|production|desire] <Max> <Rate> <ResName>> || Resource declaration | X || X || X |} =Value Definitions= TODO 312 311 2010-10-16T23:28:15Z Derrick 2 /* Optional Elements */ Added a couple missing elements wikitext text/x-wiki = Templates = Much of the Content of UO is defined in this file. Organized into individually numbered templates, the individual templates defined in this file provide the contruction arguments (delarations) for non-generic items, and all templated mobiles (such as NPC's, Monsters, Packs of creatures, Camps, etc.). It is evident from the structure and content of this file that there is much parity between Items and Mobiles. = Template Structure = Each declaration in the file appears on it's own line. Some delarations are are optional and/or repeatable as approptiate for that class of delaration. The general format is as follows, with the individual elements, and value types defined later. <pre> <<ID>> <type <ObjectType> <TypeSpecificID>> [Optional Elements...] <@@@ END @@@> </pre> = Template Elements = One per line, internal whitespace ignored. ==Required Elements== {| class="wikitable" border="1" ! Name !! Format !! Description |- |TemplateID || <<TemplateID>> || The ID of this template |- |Template Type|| <type <ObjectType> <ObjectID>> || The ObjectType of this tempate and the ObjectID |- |End|| <@@@ END @@@> || Marks the end of the template |} ==Optional Elements== R: Repeatable M: NORMAL or SHOPKEEPER I: ITEM Because the NONE type is used as a template overlay, it's assumed all elements are valid for none {| class="wikitable" border="1" ! Name !! Format !! Description !R!!M!!I |- |CreatesNPCs|| <createsnpcs <Bool>> || This item generates NPC's relative to it's position in <eq> | || || X |- |Frequency || <frequency <SingleValue>> || Not fully understood | || X || X |- |Region || <region <Value>> || Not fully understood | || X || ? |- |RegionLimit || <regionlimit <Value>> || Not fully understood | || X || ? |- |Job|| <job <UnquotedString>> || A Title of an NPC, displayed after their name | || X || |- |Sex|| <sex <Gender>> || The gender of the NPC (MALE, FEMALE or OTHER) | || X || |- |Name|| <name <Value> > || The "Name List" to use to generate a name for the Object(?) | || X || ? |- |Partial Hue|| <partialhue <HueValue>> || The "partial hue" to apply to the object (vs. "solid hue") | || X || ? |- |Hue|| <hue <HueValue>> || The "solid hue" to apply to the object | || X || ? |- |Quantity|| <quantity <SingleValue>> || Quantity, probably used only when ObjectID represents a stackable item | ? || ? || X |- |ObjVar|| <objvar <Type> <String> <Value> > || An ObjVar to add to the Object | X || X || |- |Script|| <script <String>> || An Script to attach to the Object | X || X || ? |- |sfxNotice|| <sfxnotice <Value>> || Mobile Notice sound ID | || X || |- |sfxIdle|| <sfxidle <Value>> || Mobile Notice sound ID | || X || |- |sfxHit|| <sfxidle <Value>> || Mobile Idle sound ID | || X || |- |sfxWasHit|| <sfxwashit <Value>> || Mobile Took Damage sound ID | || X || |- |sfxDie|| <sfxdie <Value>> || Mobile Died sound ID | || X || |- |ConvFrag|| <convfrag <FragmentName>> || Add Speech Fragment for the Mobile | X || X || |- |Alignment|| <alignment <AlignEntry>> || The Alignment the Mobile (GOOD, NEUTRAL or EVIL) | || X || |- |Notoriety|| <notoriety <SingleValue>> || The Notoriety value of the Mobile (Int or Dice) | || X || |- |Strength|| <strength <SingleValue>> || The Strength value of the Mobile (Int or Dice) | || X || |- |Dexterity|| <dexterity <SingleValue>> || The Dexterity value of the Mobile (Int or Dice) | || X || |- |Intelligence|| <intelligence <SingleValue>> || The Intelligence value of the Mobile (Int or Dice) | || X || |- |HitPoints|| |<hp <SingleValue|STR>> || The HitPoints value of the Mobile, or use STR as base | || X || |- |Mana|| |<mana <SingleValue|INT>> || The Mana value of the Mobile, or use INT as base | || X || |- |Stamina|| |<stamina <SingleValue|DEX>> || The Stamina value of the Mobile, or use DEX as base | || X || |- |NaturalWC|| <naturalwc <SingleValue>> || The Default Base Damage the NPC delivers when it Hits | || X || |- |NaturalAC|| <naturalac <SingleValue>> || The The Natural Armor Class of the creature | || X || |- |Immunities|| <immunities <ImmunityValue>> || Immunity | X || X || ? |- |Skill|| <sk <SkillValue> <SingleValue>> || Set skill on mobile to value | X || X || |- |Equip|| |<eq <ObjectDefValue> [MAGIC I J K] <HueValue> <Amount> [AT X Y Z] [SELFCONTAINED|SELLABLE|BUYABLE|contained|wear] [poi_cleanup] [sumdeadtemp] [pet]> || Add Object | X || X || X |- |Friends|| <friends <TemplateID>> || Identifies "Friends" of this Mobile by template | X || X || |- |Resource|| |<resource [food|shelter|production|desire] <Max> <Rate> <ResName>> || Resource declaration | X || X || X |} =Value Definitions= TODO 313 312 2010-10-17T15:25:42Z Derrick 2 /* Optional Elements */ added <req> element, I suspect this is a bugged enty, wikitext text/x-wiki = Templates = Much of the Content of UO is defined in this file. Organized into individually numbered templates, the individual templates defined in this file provide the contruction arguments (delarations) for non-generic items, and all templated mobiles (such as NPC's, Monsters, Packs of creatures, Camps, etc.). It is evident from the structure and content of this file that there is much parity between Items and Mobiles. = Template Structure = Each declaration in the file appears on it's own line. Some delarations are are optional and/or repeatable as approptiate for that class of delaration. The general format is as follows, with the individual elements, and value types defined later. <pre> <<ID>> <type <ObjectType> <TypeSpecificID>> [Optional Elements...] <@@@ END @@@> </pre> = Template Elements = One per line, internal whitespace ignored. ==Required Elements== {| class="wikitable" border="1" ! Name !! Format !! Description |- |TemplateID || <<TemplateID>> || The ID of this template |- |Template Type|| <type <ObjectType> <ObjectID>> || The ObjectType of this tempate and the ObjectID |- |End|| <@@@ END @@@> || Marks the end of the template |} ==Optional Elements== R: Repeatable M: NORMAL or SHOPKEEPER I: ITEM Because the NONE type is used as a template overlay, it's assumed all elements are valid for none {| class="wikitable" border="1" ! Name !! Format !! Description !R!!M!!I |- |CreatesNPCs|| <createsnpcs <Bool>> || This item generates NPC's relative to it's position in <eq> | || || X |- |Frequency || <frequency <SingleValue>> || Not fully understood | || X || X |- |Region || <region <Value>> || Not fully understood | || X || ? |- |RegionLimit || <regionlimit <Value>> || Not fully understood | || X || ? |- |Job|| <job <UnquotedString>> || A Title of an NPC, displayed after their name | || X || |- |Sex|| <sex <Gender>> || The gender of the NPC (MALE, FEMALE or OTHER) | || X || |- |Name|| <name <Value> > || The "Name List" to use to generate a name for the Object(?) | || X || ? |- |Partial Hue|| <partialhue <HueValue>> || The "partial hue" to apply to the object (vs. "solid hue") | || X || ? |- |Hue|| <hue <HueValue>> || The "solid hue" to apply to the object | || X || ? |- |Quantity|| <quantity <SingleValue>> || Quantity, probably used only when ObjectID represents a stackable item | ? || ? || X |- |ObjVar|| <objvar <Type> <String> <Value> > || An ObjVar to add to the Object | X || X || |- |Script|| <script <String>> || An Script to attach to the Object | X || X || ? |- |sfxNotice|| <sfxnotice <Value>> || Mobile Notice sound ID | || X || |- |sfxIdle|| <sfxidle <Value>> || Mobile Notice sound ID | || X || |- |sfxHit|| <sfxidle <Value>> || Mobile Idle sound ID | || X || |- |sfxWasHit|| <sfxwashit <Value>> || Mobile Took Damage sound ID | || X || |- |sfxDie|| <sfxdie <Value>> || Mobile Died sound ID | || X || |- |ConvFrag|| <convfrag <FragmentName>> || Add Speech Fragment for the Mobile | X || X || |- |Alignment|| <alignment <AlignEntry>> || The Alignment the Mobile (GOOD, NEUTRAL or EVIL) | || X || |- |Notoriety|| <notoriety <SingleValue>> || The Notoriety value of the Mobile (Int or Dice) | || X || |- |Strength|| <strength <SingleValue>> || The Strength value of the Mobile (Int or Dice) | || X || |- |Dexterity|| <dexterity <SingleValue>> || The Dexterity value of the Mobile (Int or Dice) | || X || |- |Intelligence|| <intelligence <SingleValue>> || The Intelligence value of the Mobile (Int or Dice) | || X || |- |HitPoints|| |<hp <SingleValue|STR>> || The HitPoints value of the Mobile, or use STR as base | || X || |- |Mana|| |<mana <SingleValue|INT>> || The Mana value of the Mobile, or use INT as base | || X || |- |Stamina|| |<stamina <SingleValue|DEX>> || The Stamina value of the Mobile, or use DEX as base | || X || |- |NaturalWC|| <naturalwc <SingleValue>> || The Default Base Damage the NPC delivers when it Hits | || X || |- |NaturalAC|| <naturalac <SingleValue>> || The The Natural Armor Class of the creature | || X || |- |Immunities|| <immunities <ImmunityValue>> || Immunity | X || X || ? |- |Skill|| <sk <SkillValue> <SingleValue>> || Set skill on mobile to value | X || X || |- |Equip|| |<eq <ObjectDefValue> [MAGIC I J K] <HueValue> <Amount> [AT X Y Z] [SELFCONTAINED|SELLABLE|BUYABLE|contained|wear] [poi_cleanup] [sumdeadtemp] [pet]> || Add Object | X || X || X |- |R Equip|| |<req <ObjectDefValue> [???] <HueValue> <Amount> [AT X Y Z] [???] [poi_cleanup]> || Possible bugged entry | ? || ? || ? |- |Friends|| <friends <TemplateID>> || Identifies "Friends" of this Mobile by template | X || X || |- |Resource|| |<resource [food|shelter|production|desire] <Max> <Rate> <ResName>> || Resource declaration | X || X || X |} =Value Definitions= TODO Templatestable 0 86 301 2010-10-15T15:00:31Z Derrick 2 moved [[Templatestable]] to [[Templatestable.dat]] over redirect: Fixed IIS config, .dat is now allowed wikitext text/x-wiki #REDIRECT [[Templatestable.dat]] UODemo Wiki:Community Portal 4 87 302 2010-10-15T15:33:55Z Derrick 2 Created page with 'http://forum.joinuo.com/viewforum.php?f=32' wikitext text/x-wiki http://forum.joinuo.com/viewforum.php?f=32 UODemo Wiki:Current events 4 88 303 2010-10-15T15:35:59Z Derrick 2 Created page with 'No current events.' wikitext text/x-wiki No current events. Uodemo+ 0 15 304 250 2010-10-15T15:45:06Z Derrick 2 moved [[Uodemo+]] to [[Uodemo+.exe]]:&#32;+ cannot a valid url wikitext text/x-wiki A list of supported environment variables:<br> Publish 15+: UODEMODLL = <filename (DLL file)><br> Publish 14+: USEACCOUNTNAME = YES/NO<br> Publish 14+: MANUALLOGON = YES/NO<br> Publish 13+: IGNOREDYNIDX0 = YES/NO<br> Publish 12+: REGKEYNAME = <registry key name><br> Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 15 == The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br> == Publish 14 == The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br> == Publish 13 == The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br> == Publish 12 == The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 306 304 2010-10-15T15:46:07Z Derrick 2 moved [[Uodemo+.exe]] to [[Uodemo Plus]]:&#32;Plus (+) cannot be contained currently in a URL wikitext text/x-wiki A list of supported environment variables:<br> Publish 15+: UODEMODLL = <filename (DLL file)><br> Publish 14+: USEACCOUNTNAME = YES/NO<br> Publish 14+: MANUALLOGON = YES/NO<br> Publish 13+: IGNOREDYNIDX0 = YES/NO<br> Publish 12+: REGKEYNAME = <registry key name><br> Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 15 == The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br> == Publish 14 == The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br> == Publish 13 == The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br> == Publish 12 == The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] 308 306 2010-10-15T16:20:53Z Derrick 2 moved [[Uodemo Plus]] to [[Uodemo+]]:&#32;Undo wikitext text/x-wiki A list of supported environment variables:<br> Publish 15+: UODEMODLL = <filename (DLL file)><br> Publish 14+: USEACCOUNTNAME = YES/NO<br> Publish 14+: MANUALLOGON = YES/NO<br> Publish 13+: IGNOREDYNIDX0 = YES/NO<br> Publish 12+: REGKEYNAME = <registry key name><br> Publish 12+: LOCALCOUNSELOR = 1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE = YES/NO<br> Publish 8+: SAVEDYNAMIC0 = YES/NO<br> Publish 6+: LOGFILE = <filename> (Razor format)<br> Publish 4+: RUNDIR = <directory><br> Publish 3+: DATFILE = <filename><br> By default: [[SERVERNAME]] = <directory><br> == Publish 15 == The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br> == Publish 14 == The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br> == Publish 13 == The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br> == Publish 12 == The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] UOSL Language Package 0 89 314 2011-05-23T23:36:29Z Derrick 2 Created page with 'This is a placeholder for infomation on the UOSL Language Service' wikitext text/x-wiki This is a placeholder for infomation on the UOSL Language Service 317 314 2011-05-24T14:24:22Z Derrick 2 Basic information wikitext text/x-wiki == UOSL Language Package for Visual Studio 2010 v2.0 == === Features === [[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]] * Active UOSL source parsing displays syntax and grammar errors as you work. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Intellisense QuickInfo, Statement Completion and Parameter info: ** Keywords, local and inherited variables and functions ** Full library of core functions ** Trigger definitions * Automatic line indenting. * Navigate to inherited files with a triple click on the inherits line. * Visual brace matching * Visual highlighting of selected identifiers within scope. * Text colorization for keywords and constants. === Requirements === * Visual Studio 2010. ** Express editions cannot be supported currently. * .Net 3.5 * A decent workstation: ** This extension does real-time parsing of UOSL source files. === Install Instructions === * Uninstall First: ** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs. ** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010 * Double click UOSLpkg.vsix to install this extension to Visual Studio. * Restart Visual Studio == Version History == === Version 2.0.0.0: Release Date 5/23/2011 === Known issues: * On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected. * The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything. * Friendly names for core function parameters are not yet available * In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas. * Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration === Version 1.0.0.0: Release date 4/10/2011 === Known issues: *Do not use. == Project Credits: == ;[mailto:batlin@joinuo.com Batlin] :Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list. ;[mailto:derrick@alienseed.com Derrick] :UOSL Parser and VS2010 language extension. 318 317 2011-05-24T14:25:39Z Derrick 2 Protected "[[UOSL Language Package]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki == UOSL Language Package for Visual Studio 2010 v2.0 == === Features === [[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]] * Active UOSL source parsing displays syntax and grammar errors as you work. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Intellisense QuickInfo, Statement Completion and Parameter info: ** Keywords, local and inherited variables and functions ** Full library of core functions ** Trigger definitions * Automatic line indenting. * Navigate to inherited files with a triple click on the inherits line. * Visual brace matching * Visual highlighting of selected identifiers within scope. * Text colorization for keywords and constants. === Requirements === * Visual Studio 2010. ** Express editions cannot be supported currently. * .Net 3.5 * A decent workstation: ** This extension does real-time parsing of UOSL source files. === Install Instructions === * Uninstall First: ** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs. ** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010 * Double click UOSLpkg.vsix to install this extension to Visual Studio. * Restart Visual Studio == Version History == === Version 2.0.0.0: Release Date 5/23/2011 === Known issues: * On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected. * The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything. * Friendly names for core function parameters are not yet available * In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas. * Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration === Version 1.0.0.0: Release date 4/10/2011 === Known issues: *Do not use. == Project Credits: == ;[mailto:batlin@joinuo.com Batlin] :Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list. ;[mailto:derrick@alienseed.com Derrick] :UOSL Parser and VS2010 language extension. File:UoslQuickInfo.png 6 90 315 2011-05-24T13:55:06Z Derrick 2 UOSL Language Package v2.0: Quick Info, highlighting and method signature help. wikitext text/x-wiki UOSL Language Package v2.0: Quick Info, highlighting and method signature help. 319 315 2011-05-24T14:25:55Z Derrick 2 Protected "[[File:UoslQuickInfo.png]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki UOSL Language Package v2.0: Quick Info, highlighting and method signature help. File:UoslAutoComplete.png 6 91 316 2011-05-24T13:56:08Z Derrick 2 UOSL Language Package v2.0: Autocomplete wikitext text/x-wiki UOSL Language Package v2.0: Autocomplete 320 316 2011-05-24T14:26:10Z Derrick 2 Protected "[[File:UoslAutoComplete.png]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki UOSL Language Package v2.0: Autocomplete UOSL Parser 0 92 321 2011-05-24T17:58:02Z Derrick 2 initial draft wikitext text/x-wiki == UOSL Parser == === Features === * Parses and normalizes UOSL script. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Command line tool. * DLL public interfaces for integration into your application. === Requirements === * Microsoft Windows + .Net 3.5 === Install Instructions === * Unzip RemovePrefix 0 93 323 2011-06-03T00:00:51Z Derrick 2 Created page with 'void '''removePrefix'''(string & ''theString'', string ''thePrefix''); This function will remove string supplied as ''thePrefix'' if it exists at the beginning of the reference …' wikitext text/x-wiki void '''removePrefix'''(string & ''theString'', string ''thePrefix''); This function will remove string supplied as ''thePrefix'' if it exists at the beginning of the reference string ''theString''. Return to the [[Command List]]. 324 323 2011-06-03T00:01:01Z Derrick 2 Protected "[[RemovePrefix]]" ([edit=sysop] (indefinite) [move=sysop] (indefinite)) wikitext text/x-wiki void '''removePrefix'''(string & ''theString'', string ''thePrefix''); This function will remove string supplied as ''thePrefix'' if it exists at the beginning of the reference string ''theString''. Return to the [[Command List]]. Triggers 0 94 325 2011-06-29T13:34:15Z Derrick 2 Created page with '==Full list of Triggers (events)== trigger acquiredesire(obj target) trigger callback<number>() trigger canbuy(obj buyer, obj seller, int quantity) trigger convofunc<string>(…' wikitext text/x-wiki ==Full list of Triggers (events)== trigger acquiredesire(obj target) trigger callback<number>() trigger canbuy(obj buyer, obj seller, int quantity) trigger convofunc<string>(obj talker, string arg) trigger creation() trigger creation() trigger death(obj attacker, obj corpse) trigger decay(int oldvalue, int newvalue) trigger destroyed() trigger enterrange<number>(obj target) trigger equip(obj equippedon) trigger famechanged() trigger foundfood(obj target) trigger genericgump<number>(obj user, int closeId, list selectList, list entryList) trigger give(obj giver, obj givenobj) trigger gotattacked(obj attacker) trigger hueselected<number>(obj user, int objhue) trigger ishealthy() trigger ishitting(obj victim, int damamt) trigger isstackableon(obj stackon) trigger killedtarget(obj attacker) trigger leaverange<number>(obj target) trigger logout() trigger lookedat(obj looker) trigger message<string>(obj sender, list args) trigger mobishitting(obj victim, int damage) trigger multirecycle(int oldtype, int newtype) trigger murdercountchanged() trigger objaccess<number>(obj user, obj usedon) trigger objectloaded() trigger online() trigger oortargetobj(obj user, obj usedon) trigger ooruse(obj user) trigger pathfound<number>() trigger pathnotfound<number>() trigger pkpost(obj killer, obj killee) trigger sawdeath(obj attacker, obj victim, obj corpse) trigger seekdesire() trigger seekfood() trigger seekshelter() trigger serverswitch() trigger shop(int func) trigger speech<string>(obj speaker, string arg) trigger targetloc(obj user, loc place, int objtype) trigger targetobj(obj user, obj usedon) trigger textentry<number>(obj sender, int button, string text) trigger time<string>() trigger transaccountcheck(obj target, int transok) trigger transresponse(obj target, int transok) trigger typeselected<number>(obj user, int listindex, int objtype, int objhue) trigger unequip(obj unequippedfrom) trigger use(obj user) trigger wasdropped(obj dropper) trigger wasgotten(obj getter) trigger washit(obj attacker, int damamt) 327 325 2011-07-10T00:32:21Z Batlin 3 wikitext text/x-wiki In UOSL (Ultima Online Script Language) triggers are used by scripts to react to certain events as they occur in the game. Triggers are only executed by the scripts if the script is attached to an object. The possible triggers are limited by the support in the core (see the list below). It is also possible to attach a chance to the trigger, in that case the trigger won't execute always. The syntax of the chance is "<number>" which is then placed between the trigger keyword and the actual name of the trigger. [http://www.joinuo.com/forums/viewtopic.php?f=32&t=308 Technical Information] ==Full list of Triggers (events)== trigger acquiredesire(obj target) trigger callback<number>() trigger canbuy(obj buyer, obj seller, int quantity) trigger convofunc<string>(obj talker, string arg) trigger creation() trigger death(obj attacker, obj corpse) trigger decay(int oldvalue, int newvalue) trigger destroyed() trigger enterrange<number>(obj target) trigger equip(obj equippedon) trigger famechanged() trigger foundfood(obj target) trigger genericgump<number>(obj user, int closeId, list selectList, list entryList) trigger give(obj giver, obj givenobj) trigger gotattacked(obj attacker) trigger hueselected<number>(obj user, int objhue) trigger ishealthy() trigger ishitting(obj victim, int damamt) trigger isstackableon(obj stackon) trigger killedtarget(obj attacker) trigger leaverange<number>(obj target) trigger logout() trigger lookedat(obj looker) trigger message<string>(obj sender, list args) trigger mobishitting(obj victim, int damage) trigger multirecycle(int oldtype, int newtype) trigger murdercountchanged() trigger objaccess<number>(obj user, obj usedon) trigger objectloaded() trigger online() trigger oortargetobj(obj user, obj usedon) trigger ooruse(obj user) trigger pathfound<number>() trigger pathnotfound<number>() trigger pkpost(obj killer, obj killee) trigger sawdeath(obj attacker, obj victim, obj corpse) trigger seekdesire() trigger seekfood() trigger seekshelter() trigger serverswitch() trigger shop(int func) trigger speech<string>(obj speaker, string arg) trigger targetloc(obj user, loc place, int objtype) trigger targetobj(obj user, obj usedon) trigger textentry<number>(obj sender, int button, string text) trigger time<string>() trigger transaccountcheck(obj target, int transok) trigger transresponse(obj target, int transok) trigger typeselected<number>(obj user, int listindex, int objtype, int objhue) trigger unequip(obj unequippedfrom) trigger use(obj user) trigger wasdropped(obj dropper) trigger wasgotten(obj getter) trigger washit(obj attacker, int damamt) Main Page 0 1 326 110 2011-07-10T00:17:24Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. Topics of interest: [[Dating the Ultima Online Demo]] After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. <big>'''UO Demo Forum'''</big> '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == [[Special:AllPages]] == SetDecayTest 0 95 329 2011-08-11T20:10:23Z Batlin 3 Created page with 'void '''setDecayTest'''(integer NewDecayTestMode);<br> This function can be used to set the object decay mode of the server. Reverse engineering ([http://www.joinuo.com/forums/v…' wikitext text/x-wiki void '''setDecayTest'''(integer NewDecayTestMode);<br> This function can be used to set the object decay mode of the server. Reverse engineering ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 source]) has shown that 3 modes exist. <pre> 0 = no testing aka normal decay 1 = fast decay 2 = no decay aka ageless </pre> If you pass any number other than 0, 1 or 2 then mode 2 is assumed and activated by this function. Return to the [[Command List]]. 330 329 2011-08-11T20:10:36Z Batlin 3 wikitext text/x-wiki void '''setDecayTest'''(integer ''NewDecayTestMode'');<br> This function can be used to set the object decay mode of the server. Reverse engineering ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 source]) has shown that 3 modes exist. <pre> 0 = no testing aka normal decay 1 = fast decay 2 = no decay aka ageless </pre> If you pass any number other than 0, 1 or 2 then mode 2 is assumed and activated by this function. Return to the [[Command List]]. 331 330 2011-08-11T20:19:22Z Batlin 3 wikitext text/x-wiki void '''setDecayTest'''(integer ''NewDecayTestMode'');<br> This function can be used to set the object decay mode of the server. Reverse engineering ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 source]) has shown that 3 modes exist. <pre> 0 = no testing aka normal decay 1 = fast decay 2 = no decay aka ageless </pre> If you pass any number other than 0, 1 or 2 then mode 2 is assumed and activated by this function. There is no true function that can be used to get the current decay mode, but you can use the [[getDefaultDieDecay]] function for this purpose by interpreting its return value. Return to the [[Command List]]. GetDefaultDieDecay 0 96 332 2011-08-11T20:19:31Z Batlin 3 Created page with 'integer '''setDecayTest'''(void);<br> This function returns a valid known as default die decay, not much is known yet about the exact meaning of the value. Please review the fol…' wikitext text/x-wiki integer '''setDecayTest'''(void);<br> This function returns a valid known as default die decay, not much is known yet about the exact meaning of the value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time]. This function can be used to detect the decay mode to server is currently using. The following list represents the return value of this function and the related mode. <pre> 0x48 = mode 1 0xF0 = mode 0 0xFF = mode 2 </pre> Please refer to the [[setDecayTest]] function for more information about the modes. Return to the [[Command List]]. 333 332 2011-08-11T20:20:29Z Batlin 3 wikitext text/x-wiki integer '''getDefaultDieDecay'''(void);<br> This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time]. This function can be used to detect the decay mode to server is currently using. The following list represents the return value of this function and the related mode. <pre> 0x48 = mode 1 0xF0 = mode 0 0xFF = mode 2 </pre> Please refer to the [[setDecayTest]] function for more information about the modes. Return to the [[Command List]]. GetDefaultDieDecay 0 96 334 333 2011-08-11T20:20:57Z Batlin 3 wikitext text/x-wiki integer '''getDefaultDieDecay'''(void);<br> This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time]. This function can be used to detect the decay mode to server is currently using. The following list represents the return value of this function and the related mode. <pre> 0x48 = mode 1 0xFA = mode 0 0xFF = mode 2 </pre> Please refer to the [[setDecayTest]] function for more information about the modes. Return to the [[Command List]]. 336 334 2011-08-11T20:26:50Z Batlin 3 wikitext text/x-wiki integer '''getDefaultDieDecay'''(void);<br> This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time]. This function can be used to detect the decay mode to server is currently using. The following list represents the return values of this function and the related decay modes. <pre> 0x48 = mode 1 0xFA = mode 0 0xFF = mode 2 </pre> Please refer to the [[setDecayTest]] function for more information about the modes. Return to the [[Command List]]. GetDecayMax 0 97 335 2011-08-11T20:25:27Z Batlin 3 Created page with 'integer '''getDecayMax'''(object ''AnyObject''); This function can be executed on any object including NPC's and players. It will return the exact same value as [[getDefaultDieD…' wikitext text/x-wiki integer '''getDecayMax'''(object ''AnyObject''); This function can be executed on any object including NPC's and players. It will return the exact same value as [[getDefaultDieDecay]] as long as a valid object is provided. Therefor this function serves no real purpose.<br> The function will return 0xFFFFFFF6 (-10) if an invalid object was given. Return to the [[Command List]]. Main Page 0 1 337 326 2011-08-12T11:43:24Z Batlin 3 wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. Topics of interest: [[Dating the Ultima Online Demo]] After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''Special Interest Links</big> [[Scripts|About the obfuscated scripts]] [[Command List|The Command List]] <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. <big>'''UO Demo Forum'''</big> '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == [[Special:AllPages]] == 363 337 2011-11-21T03:50:35Z Alfredjxal 39 wikitext text/x-wiki wings. certified free online dating service articles? going to put across the how to get knowledge respecting mormon dating sites even though I first saw mormon dating sites 3 weeks ago. easy to locate the aspect. andi to achieve senior dating site. is perhaps why complaints against absolutely free dating site declined by almost 99. ility material to that element. ative of a major group of [http://www.edlhuber.net/wiki/index.php5/Want_to_know_completely_free_dating_sites the best dating sites] the masses. on giving the feeling of being cold. ecommendations? ng as you may just need to take these words to heart. ends whenever free personals dating sites consumers are anxious to save as many pennies as they can. f details? because [http://ovidion.org/index.php?title=S_of_societies_have_circumvented_free_dating_sites herpes dating sites] disagrees with you. t happening at all. to it. nt, I'm going to show you an example of what I'm talking about in the matter of that activity. metimes you will discover a free black dating sites indoors as welcome to the home for the free black dating sites challenged. how you a picture but I wasn't able to do that. not the situation with italian dating sites. s is a way to get recognition for experiencing that. mmunity provided that I'd supposed this would happen, but never dared dream it. zations a ton of grief. egard to [http://freedatingsites.us.com/ free dating sites]. at is how to generate the best free canadian dating sites feelings. [http://arthur1000gefahren.wiki-site.com/index.php/L_help_you_be_higher_than_a_hawk%27s_nest_wherever_i canadian dating sites] deals? you need to do in order to enjoy your free dating sites for men seeking women. e supposition fully. ut here it is: There is not much more to learn touching on on line dating sites. nowledge. a market that favors sellers. not holding back on dating sites free. at. is study. e obviously wrong with regard to that. flicted on beginners. e whole puzzle of the trouble comes into play as well. many game plans as you can to obtain this revision. ence to this is this. ws how little confidence most elites have in free free dating sites. ike it with a theme. ad and buy their transpiration in bulk. ll it be? want your 100% free dating site to look good. you ought to know. the very best as much as in addition to that, you also ought to share insight in respect to using it. isibility in this old chestnut. any insights on what might happen in the future? my article on this embarrassment. attempting to locate an important expert. ict. free sites dating. s. te overcrowded while I was there. road I can simply try to sidestep it when they can. discuss this belief today if you are at all serious in relation to that point of contention. doing that, stick around. 368 363 2011-11-23T19:02:30Z Derrick 2 Reverted edits by [[Special:Contributions/Alfredjxal|Alfredjxal]] ([[User talk:Alfredjxal|Talk]]) to last revision by [[User:Batlin|Batlin]] wikitext text/x-wiki <big>'''Welcome the UO Demo Wiki.'''</big> UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. Topics of interest: [[Dating the Ultima Online Demo]] After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. <big>'''Special Interest Links</big> [[Scripts|About the obfuscated scripts]] [[Command List|The Command List]] <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. <big>'''UO Demo Forum'''</big> '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == [[Special:AllPages]] == 375 368 2011-11-24T20:17:33Z Derrick 2 Reogrganized and formatted; added links to SVN and projects wikitext text/x-wiki __NOTOC__ = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. == Featured Contents == [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] [[Special:AllPages]] == UO Demo Files == === Files on the UO:The Second Age retail CD === After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. 376 375 2011-11-24T20:19:55Z Derrick 2 /* Featured Contents */ wikitext text/x-wiki __NOTOC__ = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. == Featured Contents == [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] [[Special:AllPages]] == UO Demo Files == === Files on the UO:The Second Age retail CD === After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. 378 376 2011-11-24T20:29:14Z Derrick 2 /* Welcome the UO Demo Wiki. */ wikitext text/x-wiki __NOTOC__ = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998. It was, like the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. To install the demo you need an Ultima Online:The Second Age retail CD. These are pretty regularly available on EBay for under $10US. == Featured Contents == [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] [[Special:AllPages]] == UO Demo Files == === Files on the UO:The Second Age retail CD === After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe but I'm not sure it's legal to post those keys here. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. 379 378 2011-11-25T15:03:54Z Derrick 2 /* Welcome the UO Demo Wiki. */ wikitext text/x-wiki __NOTOC__ __NOTOC__ = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even incude some preliminary work on T2A era mechanics. To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other autcion sites. == Featured Contents == [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] [[Special:AllPages]] == UO Demo Files == === Files on the UO:The Second Age retail CD === UoDemoInstall.exe is in the root of the CD. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. 380 379 2011-11-25T15:09:43Z Derrick 2 /* Welcome the UO Demo Wiki. */ wikitext text/x-wiki __NOTOC__ __NOTOC__ __NOTOC__ [[Category:Full Protection|{{PAGENAME}}]] = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics. To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites. == Featured Contents == [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]]. == UO Demo Files == === Files on the UO:The Second Age retail CD === UoDemoInstall.exe is in the root of the CD. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. 381 380 2011-11-25T16:04:10Z Derrick 2 /* UO Demo Development */ wikitext text/x-wiki __NOTOC__ __NOTOC__ __NOTOC__ [[Category:Full Protection|{{PAGENAME}}]] = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics. To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites. == Featured Contents == [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]]. == UO Demo Files == === Files on the UO:The Second Age retail CD === UoDemoInstall.exe is in the root of the CD. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Unpacking UODemo.DAT === [http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive] [[Mass M Decompiler|Decompiling the Scripts]] === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. 404 381 2011-12-10T20:16:13Z Derrick 2 /* Featured Contents */ wikitext text/x-wiki __NOTOC__ __NOTOC__ __NOTOC__ [[Category:Full Protection|{{PAGENAME}}]] = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics. To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites. == Featured Contents == [[UO:98]] UO Server [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]]. == UO Demo Files == === Files on the UO:The Second Age retail CD === UoDemoInstall.exe is in the root of the CD. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Unpacking UODemo.DAT === [http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive] [[Mass M Decompiler|Decompiling the Scripts]] === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client sofware is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. GetCurrentTimeStr 0 70 338 266 2011-08-12T11:45:29Z Batlin 3 wikitext text/x-wiki void '''getCurrentTimeStr'''(string &''ResultString''); This function returns the system time as a string in the format ''"%Y-%m-%d %H:%M"'' using the ''strftime'' C function. However! The demo server code is bugged here ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=569 forum topic]), and will return a randomized time due to a missing call to the required ''time'' C function! This is fixed in UoDemo+ Publish 16 and later. Return to the [[Command List]]. 339 338 2011-08-12T11:46:59Z Batlin 3 wikitext text/x-wiki void '''getCurrentTimeStr'''(string &''ResultString''); This function returns the system time as a string in the format ''"%Y-%m-%d %H:%M"'' using the ''strftime'' C function. However! The demo server code is bugged here ([http://www.joinuo.com/forums/viewtopic.php?f=32&t=569 forum topic]), and will return a randomized time due to a missing call to the required ''time'' C function! This is fixed in [[uodemo+|UoDemo+]] Publish 16 and later. Return to the [[Command List]]. Secrets 0 16 340 93 2011-08-12T11:49:26Z Batlin 3 wikitext text/x-wiki The Ultima Online Demo contains some features that people didn't know about till now! '''Did you know you can tell the wisp to go away?'''<br> Say "dismiss" and the wisp will leave you alone and will start a life of its own.<br> '''The poisoning script contains a serious bug.'''<br> It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml 10/1/98 OSI Patch Notes]<br> (with thanks to Dies Irae)<br> '''login.txt'''<br> The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br> 341 340 2011-08-12T12:06:17Z Batlin 3 wikitext text/x-wiki The Ultima Online Demo contains some features that people didn't know about till now! '''Did you know you can tell the wisp to go away?'''<br> Say "dismiss" and the wisp will leave you alone and will start a life of its own.<br> '''login.txt'''<br> The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br> '''The account numbers found in [[dynamic0.mul]] are IP addresses (of OSI programmers back then?)'''<br> Analysis of the account numbers has revealed that there's a direct match between them and IP addresses. These IP addresses are now owned by EA and were most probably owned by OSI in 1998 (?). The Avatar, the hero of the demo, has has a fixed account number 2130706433 which equals the IP address 127.0.0.1 aka localhost. [http://www.joinuo.com/forums/viewtopic.php?f=32&t=522 forum topic] '''The poisoning script contains a serious bug.'''<br> It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml 10/1/98 OSI Patch Notes]<br> (with thanks to Dies Irae)<br> Dynamic0.mul 0 2 342 134 2011-08-12T12:12:39Z Batlin 3 wikitext text/x-wiki Found in ../[[.rundir]]/[[uogolddemo]] This is the world save data file. The associated file [[dynidx0.mul]] is its index. By default this file cannot be written to, but analysis of the exe has shown that a function exists which can write back the data file. [[uodemo+|UoDemo+, Publish 8]] has been created and added the SAVEDYNAMIC0 option so you can enable this hidden save functionality. This file is structured as a nested object list. Each top level entity in the file begins with ''@=<type>'' and ends with ''@end'' Nested Entities do not require @end Identified types (and guesses): B=Bulletin Board C=Container D=Dynamic Item??: (Book,Board,Ingot,Small Fish,Rope) E=Chunk Egg G=Guard N=NPC/Creature P=Player S=Shopkeeper W=Wearable (Weapon,Armor) Z=Item P Format: @=P <propery>=<value> ... @=[D|C|E] <propery>=<value> ... @end GetTimeSecs 0 69 343 280 2011-08-13T07:51:25Z Batlin 3 wikitext text/x-wiki integer '''getTimeSecs'''(void); This is a bug-fixed function as of UoDemo+ Publish 16. This function will return the system time in seconds. This is implemented by using the ''time'' C Library function, therefor the time returned is the number of seconds elapsed since January 1, 1970. When OSI ported their server code to Windows and merged it with the client code, they made a mistake and replaced the calls to ''time'' with calls to ''timeGetTime''. Thus in the original demo and UoDemo+ up to Publish 15, this function will return the current system time (server time) in milliseconds. This was implemented by using the ''timeGetTime'' Windows Multimedia function, therefor the return time was the time elapsed since Windows was started. Please refer to your Windows (MSDN) documentation for more details and remarks. Return to the [[Command List]]. UOSL Language Package 0 89 369 318 2011-11-23T19:44:10Z Derrick 2 /* Install Instructions */ wikitext text/x-wiki == UOSL Language Package for Visual Studio 2010 v2.0 == === Features === [[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]] * Active UOSL source parsing displays syntax and grammar errors as you work. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Intellisense QuickInfo, Statement Completion and Parameter info: ** Keywords, local and inherited variables and functions ** Full library of core functions ** Trigger definitions * Automatic line indenting. * Navigate to inherited files with a triple click on the inherits line. * Visual brace matching * Visual highlighting of selected identifiers within scope. * Text colorization for keywords and constants. === Requirements === * Visual Studio 2010. ** Express editions cannot be supported currently. * .Net 3.5 * A decent workstation: ** This extension does real-time parsing of UOSL source files. === Install Instructions === * Download: ** Binary: [ftp://download.joinuo.com/Apps/UOSLpkg.vsix FTP] | [http://download.joinuo.com/Apps/UOSLpkg.vsix HTTP] ** Source: *** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language Official Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Uninstall First: ** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs. ** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010 * Double click UOSLpkg.vsix to install this extension to Visual Studio. * Restart Visual Studio == Version History == === Version 2.0.0.0: Release Date 5/23/2011 === Known issues: * On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected. * The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything. * Friendly names for core function parameters are not yet available * In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas. * Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration === Version 1.0.0.0: Release date 4/10/2011 === Known issues: *Do not use. == Project Credits: == ;[mailto:batlin@joinuo.com Batlin] :Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list. ;[mailto:derrick@alienseed.com Derrick] :UOSL Parser and VS2010 language extension. 372 369 2011-11-23T19:50:13Z Derrick 2 /* Install Instructions */ wikitext text/x-wiki == UOSL Language Package for Visual Studio 2010 v2.0 == === Features === [[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]] * Active UOSL source parsing displays syntax and grammar errors as you work. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Intellisense QuickInfo, Statement Completion and Parameter info: ** Keywords, local and inherited variables and functions ** Full library of core functions ** Trigger definitions * Automatic line indenting. * Navigate to inherited files with a triple click on the inherits line. * Visual brace matching * Visual highlighting of selected identifiers within scope. * Text colorization for keywords and constants. === Requirements === * Visual Studio 2010. ** Express editions cannot be supported currently. * .Net 3.5 * A decent workstation: ** This extension does real-time parsing of UOSL source files. === Install Instructions === * Download: ** Binary: [ftp://download.joinuo.com/Apps/UOSLpkg.vsix FTP] | [http://download.joinuo.com/Apps/UOSLpkg.vsix HTTP] ** Source: *** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Uninstall First: ** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs. ** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010 * Double click UOSLpkg.vsix to install this extension to Visual Studio. * Restart Visual Studio == Version History == === Version 2.0.0.0: Release Date 5/23/2011 === Known issues: * On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected. * The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything. * Friendly names for core function parameters are not yet available * In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas. * Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration === Version 1.0.0.0: Release date 4/10/2011 === Known issues: *Do not use. == Project Credits: == ;[mailto:batlin@joinuo.com Batlin] :Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list. ;[mailto:derrick@alienseed.com Derrick] :UOSL Parser and VS2010 language extension. UOSL Parser 0 92 370 321 2011-11-23T19:49:37Z Derrick 2 /* Install Instructions */ wikitext text/x-wiki == UOSL Parser == === Features === * Parses and normalizes UOSL script. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Command line tool. * DLL public interfaces for integration into your application. === Requirements === * Microsoft Windows + .Net 3.5 === Install Instructions === * Download: ** Binary Distibution: [ftp://download.joinuo.com/Apps/UOSL.zip FTP] | [http://download.joinuo.com/Apps/UOSL.zip HTTP] ** Source: *** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language Official Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Unzip if using Binary Distibution. Executable is UOSL.exe 371 370 2011-11-23T19:50:04Z Derrick 2 /* Install Instructions */ wikitext text/x-wiki == UOSL Parser == === Features === * Parses and normalizes UOSL script. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Command line tool. * DLL public interfaces for integration into your application. === Requirements === * Microsoft Windows + .Net 3.5 === Install Instructions === * Download: ** Binary Distibution: [ftp://download.joinuo.com/Apps/UOSL.zip FTP] | [http://download.joinuo.com/Apps/UOSL.zip HTTP] ** Source: *** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Unzip if using Binary Distibution. Executable is UOSL.exe Talk:Main Page 1 121 377 2011-11-24T20:23:28Z Derrick 2 Created page with 'Need a writeup on how in unpack UODemo.dat' wikitext text/x-wiki Need a writeup on how in unpack UODemo.dat Command List 0 37 382 328 2011-11-27T21:28:58Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer isObscene(string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> IsOwnedPet 0 122 383 2011-11-27T21:34:53Z Batlin 3 Created page with 'integer '''isOwnedPet'''(object ''AnyObject''); This function will return 1 if the given object is valid and it is a NPC. Also it has to have an attached list variable named "my…' wikitext text/x-wiki integer '''isOwnedPet'''(object ''AnyObject''); This function will return 1 if the given object is valid and it is a NPC. Also it has to have an attached list variable named "myBoss" with atleast 1 item in that list. Otherwise 0 is returned. Return to the [[Command List]]. UO:98 0 123 384 2011-12-07T01:08:30Z Derrick 2 Created page with 'UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo …' wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. The UO:98 distribution requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) 390 384 2011-12-09T16:29:30Z Derrick 2 Installing and Using wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. 391 390 2011-12-09T16:43:31Z Derrick 2 Administrating UO:98 wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands 392 391 2011-12-10T00:41:44Z Derrick 2 /* Administrating UO:98 */ Added imfo on commands and other handy stuff wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numberic item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shots down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 393 392 2011-12-10T00:49:27Z Derrick 2 /* GM"cheat" Commands */ more commands wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills *** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shots down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 394 393 2011-12-10T00:52:24Z Derrick 2 /* GM"cheat" Commands */ wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shots down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 395 394 2011-12-10T00:58:15Z Derrick 2 /* SCommands */ wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 396 395 2011-12-10T18:37:22Z Derrick 2 Added installer download links wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 400 396 2011-12-10T19:53:42Z Derrick 2 Added "How does it work" wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 405 400 2011-12-10T21:26:40Z Derrick 2 forums link wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 408 405 2011-12-11T22:11:23Z Derrick 2 Added image wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. Uo98 0 124 385 2011-12-07T01:10:21Z Derrick 2 Redirected page to [[UO:98]] wikitext text/x-wiki #REDIRECT [[UO:98]] Uo:98 0 125 386 2011-12-09T15:34:22Z Derrick 2 Redirected page to [[UO:98]] wikitext text/x-wiki #REDIRECT [[UO:98]] Uo 98 0 126 387 2011-12-09T15:34:54Z Derrick 2 Redirected page to [[UO:98]] wikitext text/x-wiki #REDIRECT [[UO:98]] File:UO98 Startup.png 6 127 388 2011-12-09T16:02:20Z Derrick 2 UO:98 Startup wikitext text/x-wiki UO:98 Startup File:UO98 Ingame.png 6 128 389 2011-12-09T16:12:23Z Derrick 2 wikitext text/x-wiki UO98 0 129 397 2011-12-10T19:13:53Z Derrick 2 Redirected page to [[UO:98]] wikitext text/x-wiki #REDIRECT [[UO:98]] UoDemo+ 0 130 398 2011-12-10T19:45:49Z Derrick 2 Redirected page to [[Uodemo+]] wikitext text/x-wiki #REDIRECT [[Uodemo+]] UODemo.EXE 0 131 399 2011-12-10T19:49:04Z Derrick 2 Redirected page to [[Uodemo.exe]] wikitext text/x-wiki #REDIRECT [[Uodemo.exe]] File:UoDemoDLL cfg.png 6 132 401 2011-12-10T19:59:36Z Derrick 2 wikitext text/x-wiki File:B & r = cheat console.png 6 133 402 2011-12-10T19:59:49Z Derrick 2 wikitext text/x-wiki UoDemoDLL 0 134 403 2011-12-10T20:01:51Z Derrick 2 http://www.joinuo.com/forums/viewtopic.php?f=32&t=608 wikitext text/x-wiki UoDemo+ Publish 15 introduced the option to attach a DLL to the demo. You will need: * Borland C++ 5.5 (Free Compiler) http://edn.embarcadero.com/article/20633 * Turbo Assember 5.X http://www.phatcode.net/downloads.php?id=280 Both of them are good old command-line tools, so don't expect something fancy . The idea of the uodemo.dll is: * You set the environment variable UODEMODLL to a DLL made using this API * You start uodemo+.exe (Publish 15 or later) * uodemo+.exe will load your DLL * uodemo.dll is now in the same address space as the EXE * uodemo.dll makes patches inside uodemo+.exe in order to redirect (intercept) calls out of the EXE into the DLL * Because we own/write the DLL and it's written in C it becomes easy to recode certain functions/behaviours Even though this all sounds great, it is a lot of work because to intercept and call functions inside the EXE, you need a good knowledge of the functions and structure-layouts inside the EXE. That's what the API is for, it exposes interesting functions in a more readable fashion, so you don't need to think about the assembler and internals. This screenshot shows how to configure the API for the default test project. There are 3 batch files you can use : cfg, b and r. cfg to configure the environment, b to build to the project, r to run the project. Also refer to this screenshot: [[File:UoDemoDLL cfg.png]] You should edit cfg.cmd to ensure your build environment is correct with your computer. Use b and then r to test, if you successfull you get this : [[File:B & r = cheat console.png]] Download the project here: http://download.joinuo.com/UoDemoDLL/ Uodemo+ 0 15 406 308 2011-12-11T18:42:46Z Derrick 2 Env var options cannot have spaces next to = wikitext text/x-wiki A list of supported environment variables:<br> Publish 15+: UODEMODLL=<filename (DLL file)><br> Publish 14+: USEACCOUNTNAME=YES/NO<br> Publish 14+: MANUALLOGON=YES/NO<br> Publish 13+: IGNOREDYNIDX0=YES/NO<br> Publish 12+: REGKEYNAME=<registry key name><br> Publish 12+: LOCALCOUNSELOR=1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE=YES/NO<br> Publish 8+: SAVEDYNAMIC0=YES/NO<br> Publish 6+: LOGFILE=<filename> (Razor format)<br> Publish 4+: RUNDIR=<directory><br> Publish 3+: DATFILE=<filename><br> By default: [[SERVERNAME]]=<directory><br> == Publish 15 == The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br> == Publish 14 == The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br> == Publish 13 == The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br> == Publish 12 == The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] File:UO98 God Client.JPG 6 135 407 2011-12-11T22:09:48Z Derrick 2 God Client Support in UO:98 wikitext text/x-wiki God Client Support in UO:98 File:Checkout.JPG 6 136 409 2011-12-13T15:12:57Z Derrick 2 Check out UO:98 from our public SVN repository. wikitext text/x-wiki Check out UO:98 from our public SVN repository. File:Confirm.JPG 6 137 410 2011-12-13T15:15:56Z Derrick 2 Confirm Checkout to existing folder wikitext text/x-wiki Confirm Checkout to existing folder File:UO98folder.JPG 6 138 411 2011-12-13T15:16:45Z Derrick 2 Development checkout complete wikitext text/x-wiki Development checkout complete File:Uo98solution.JPG 6 139 412 2011-12-13T15:36:18Z Derrick 2 UO:98 Solution wikitext text/x-wiki UO:98 Solution UO:98 0 123 413 408 2011-12-13T16:33:44Z Derrick 2 Added section on Development wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [[http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folderl choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the disribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary projects in the UO:98 solution. The Sidekick and UODemoDLL projects are used to trasition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything; but this goal is not currently being met. There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 414 413 2011-12-13T16:35:45Z Derrick 2 /* Development */ spelling wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [[http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary projects in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unman-aged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything; but this goal is not currently being met. There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 415 414 2011-12-13T16:44:13Z Derrick 2 /* The Solution File */ wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [[http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 416 415 2011-12-13T17:05:18Z Derrick 2 /* Getting the Source */ extra [ wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Administrator''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 417 416 2011-12-13T17:50:46Z Derrick 2 /* Using UO:98 */ oops: username is Admin, not Administrator wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. * [spawn <templateid> ** Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q * [spawnitem <itemid> ** Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) * [tele <X> <Y> [Z] ** Teleports your to the specified map location. Z is optional. * [setskill <#> <val> ** Sets your skill of # to the specified value (integer 0-100) * [setskill all <val> ** Sets all your skills to the specified value (integer 0-100) * [listskills ** Lists all the numeric skill id's (for use in the setskill command) * [addscript <name> ** Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy * [where ** Prints our your location. * [setname <new name> ** Sets the name (RealName) of the target * [getserial * [gethue * [getheight * [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 420 417 2011-12-13T19:33:22Z Derrick 2 /* GM"cheat" Commands */ changed to Definition list wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial ; [gethue ; [getheight ; [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 421 420 2011-12-13T19:33:59Z Derrick 2 /* Development */ wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial ; [gethue ; [getheight ; [getelevation === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) * ]save * Saves the world to dynamic0.mul * ]coun [me|<serial> [type]] ** Makes the target (or yourself if "me") a counselor. * ]ucoun [me|<serial>] ** Unmakes the target a counselor * ]shutdown ** Shuts down the server, without save. * ]test ** This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 422 421 2011-12-13T19:36:15Z Derrick 2 /* In Game Commands */ definition list for SCommands wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == * 3501: loaded spellbook * 3506: reagent bag * 1504: 100 gold * 1900-1920 Houses * 1800-1805 Boats * for more: /rundir/bank/templatestable.dat == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 423 422 2011-12-13T19:37:38Z Derrick 2 /* Handy Templates */ definition list wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == ; 3501 : Loaded spellbook ; 3506 : Reagent bag ; 1504 : 100 gold ; 1900-1920 : House deeds ; 1800-1805 : Boat deeds For more templates, look in /rundir/bank/templatestable.dat.q == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... * gmcheat :GM Commands * commandDelete: items * commandZap: Mobiles * commandInvulnerable * commandSlay * commandResurrect * commandFreeze = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 424 423 2011-12-13T19:47:36Z Derrick 2 /* Handy Scripts */ Definition list, and a bit more info and commands wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == ; 3501 : Loaded spellbook ; 3506 : Reagent bag ; 1504 : 100 gold ; 1900-1920 : House deeds ; 1800-1805 : Boat deeds For more templates, look in /rundir/bank/templatestable.dat.q == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... ; gmcheat : Give the targeted player access to [[##GM.22cheat.22_Commands|GM Commands]] ; commandDelete : Delete targeted item ; commandZap : Delete Targeted NPC (Don't Zap players!) ; commandInvulnerable : Makes the targeted Mobile invulnerable. Inverse is commandVulnerable ; commandSlay : Kills the targeted mobile ; commandResurrect : Ressurrects the targeted mobile (player) ; commandFreeze : Freezes the targeted Mobile. Inverse is commandUnFreeze ; commandSquelch : Squelches the targeted Mobile. Inverse is commandUnSquelch ; Heavy : Sets the weight of an item to 255, making it immovable. The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 425 424 2011-12-13T19:51:52Z Derrick 2 /* Handy Scripts */ wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == ; 3501 : Loaded spellbook ; 3506 : Reagent bag ; 1504 : 100 gold ; 1900-1920 : House deeds ; 1800-1805 : Boat deeds For more templates, look in /rundir/bank/templatestable.dat.q == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... ; gmcheat : Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]] ; commandDelete : Delete targeted item ; commandZap : Delete Targeted NPC (Don't Zap players!) ; commandInvulnerable : Makes the targeted Mobile invulnerable. Inverse is commandVulnerable ; commandSlay : Kills the targeted mobile ; commandResurrect : Ressurrects the targeted mobile (player) ; commandFreeze : Freezes the targeted Mobile. Inverse is commandUnFreeze ; commandSquelch : Squelches the targeted Mobile. Inverse is commandUnSquelch ; Heavy : Sets the weight of an item to 255, making it immovable. The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 426 425 2011-12-13T19:57:15Z Derrick 2 /* Using UO:98 */ Requires unencrpyted client. wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == ; 3501 : Loaded spellbook ; 3506 : Reagent bag ; 1504 : 100 gold ; 1900-1920 : House deeds ; 1800-1805 : Boat deeds For more templates, look in /rundir/bank/templatestable.dat.q == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... ; gmcheat : Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]] ; commandDelete : Delete targeted item ; commandZap : Delete Targeted NPC (Don't Zap players!) ; commandInvulnerable : Makes the targeted Mobile invulnerable. Inverse is commandVulnerable ; commandSlay : Kills the targeted mobile ; commandResurrect : Ressurrects the targeted mobile (player) ; commandFreeze : Freezes the targeted Mobile. Inverse is commandUnFreeze ; commandSquelch : Squelches the targeted Mobile. Inverse is commandUnSquelch ; Heavy : Sets the weight of an item to 255, making it immovable. The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard Unit Test project that uses the built in Microsoft Testing Framework. It's intended to test Everything within the Sharpkick project by using a mock of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL]] section of this guide regarding the requirements for compiling UODemoDLL. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 428 426 2011-12-13T20:02:50Z Derrick 2 /* The Solution File */ added some links wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == ; 3501 : Loaded spellbook ; 3506 : Reagent bag ; 1504 : 100 gold ; 1900-1920 : House deeds ; 1800-1805 : Boat deeds For more templates, look in /rundir/bank/templatestable.dat.q == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... ; gmcheat : Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]] ; commandDelete : Delete targeted item ; commandZap : Delete Targeted NPC (Don't Zap players!) ; commandInvulnerable : Makes the targeted Mobile invulnerable. Inverse is commandVulnerable ; commandSlay : Kills the targeted mobile ; commandResurrect : Ressurrects the targeted mobile (player) ; commandFreeze : Freezes the targeted Mobile. Inverse is commandUnFreeze ; commandSquelch : Squelches the targeted Mobile. Inverse is commandUnSquelch ; Heavy : Sets the weight of an item to 255, making it immovable. The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with UO98) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]]. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 429 428 2011-12-13T20:05:10Z Derrick 2 /* Getting the Source */ wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == ; 3501 : Loaded spellbook ; 3506 : Reagent bag ; 1504 : 100 gold ; 1900-1920 : House deeds ; 1800-1805 : Boat deeds For more templates, look in /rundir/bank/templatestable.dat.q == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... ; gmcheat : Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]] ; commandDelete : Delete targeted item ; commandZap : Delete Targeted NPC (Don't Zap players!) ; commandInvulnerable : Makes the targeted Mobile invulnerable. Inverse is commandVulnerable ; commandSlay : Kills the targeted mobile ; commandResurrect : Ressurrects the targeted mobile (player) ; commandFreeze : Freezes the targeted Mobile. Inverse is commandUnFreeze ; commandSquelch : Squelches the targeted Mobile. Inverse is commandUnSquelch ; Heavy : Sets the weight of an item to 255, making it immovable. The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with SubVersion) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]]. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 430 429 2011-12-13T20:16:13Z Derrick 2 /* Using UO:98 */ Saves and Restoring wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. The server auto saves hourly, writing to UO98/[[.rundir|rundir]]/UO98. There is a copy of the distribution world files at http://svn.joinuo.com/svn/public/UO98/Data/distro/ should you need to restore them. Typically only accounts.xml, [[Dynamic0.mul|dynamic0.mul.q]], and [[Dynidx0.mul|dynidx.mul.q]] will need to be restored. These three files should be treated as a unit, and always be backed up and restored together. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "God Client" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/rundir/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - God Client Features (i.e., GM) * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in rundir/bank/templatestable.dat.q ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == ; 3501 : Loaded spellbook ; 3506 : Reagent bag ; 1504 : 100 gold ; 1900-1920 : House deeds ; 1800-1805 : Boat deeds For more templates, look in /rundir/bank/templatestable.dat.q == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... ; gmcheat : Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]] ; commandDelete : Delete targeted item ; commandZap : Delete Targeted NPC (Don't Zap players!) ; commandInvulnerable : Makes the targeted Mobile invulnerable. Inverse is commandVulnerable ; commandSlay : Kills the targeted mobile ; commandResurrect : Ressurrects the targeted mobile (player) ; commandFreeze : Freezes the targeted Mobile. Inverse is commandUnFreeze ; commandSquelch : Squelches the targeted Mobile. Inverse is commandUnSquelch ; Heavy : Sets the weight of an item to 255, making it immovable. The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with SubVersion) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]]. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. 431 430 2011-12-13T20:37:00Z Derrick 2 /* Administrating UO:98 */ added some links wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from JoinUO: [ftp://download.joinuo.com/Emulators/UO98/UO98_Setup.msi FTP] | [http://download.joinuo.com/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. The server auto saves hourly, writing to UO98/[[.rundir|rundir]]/UO98. There is a copy of the distribution world files at http://svn.joinuo.com/svn/public/UO98/Data/distro/ should you need to restore them. Typically only accounts.xml, [[Dynamic0.mul|dynamic0.mul.q]], and [[Dynidx0.mul|dynidx.mul.q]] will need to be restored. These three files should be treated as a unit, and always be backed up and restored together. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "[[God Client]]" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/[[.rundir|rundir]]/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - [[God Client]] Features (i.e., GM). See also: [[IsEditing]] * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in UO98/[[.rundir|rundir]]/bank/[[Templatestable.dat|templatestable.dat.q]] ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object. See also: [[Objtoint]] ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == ; 3501 : Loaded spellbook ; 3506 : Reagent bag ; 1504 : 100 gold ; 1900-1920 : House deeds ; 1800-1805 : Boat deeds For more templates, look in UO98/[[.rundir|rundir]]/bank/[[Templatestable.dat|templatestable.dat.q]] == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... ; gmcheat : Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]] ; commandDelete : Delete targeted item ; commandZap : Delete Targeted NPC (Don't Zap players!) ; commandInvulnerable : Makes the targeted Mobile invulnerable. Inverse is commandVulnerable ; commandSlay : Kills the targeted mobile ; commandResurrect : Ressurrects the targeted mobile (player) ; commandFreeze : Freezes the targeted Mobile. Inverse is commandUnFreeze ; commandSquelch : Squelches the targeted Mobile. Inverse is commandUnSquelch ; Heavy : Sets the weight of an item to 255, making it immovable. The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.joinuo.com/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.JoinUO.com/svn/public/UO98 If not familiar with SubVersion (SVN), in windows [http://tortoisesvn.net TortiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortiseSVN to check out the solution: * Install Tortise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.joinuo.com/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with SubVersion) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]]. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://www.joinuo.com/forums/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://www.joinuo.com/forums/viewforum.php?f=34 UO:98 forum] and [http://www.joinuo.com/forums/viewforum.php?f=32 UODemo forum] and say hello. You can also visit our project page on the JoinUO Redmine project server to see what we're working on; and sign up for an account there to report issues that you've discovered. http://projects.joinuo.com/redmine/projects/uo98 = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. UOSL Parser 0 92 418 371 2011-12-13T19:11:38Z Derrick 2 /* Install Instructions */ Source now requires .net 4.0 wikitext text/x-wiki == UOSL Parser == === Features === * Parses and normalizes UOSL script. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Command line tool. * DLL public interfaces for integration into your application. === Requirements === * Microsoft Windows + .Net 3.5 === Install Instructions === * Download: ** Binary Distibution: [ftp://download.joinuo.com/Apps/UOSL.zip FTP] | [http://download.joinuo.com/Apps/UOSL.zip HTTP] ** Source: (latest version requires .net 4.0) *** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Unzip if using Binary Distibution. Executable is UOSL.exe 434 418 2012-10-20T23:02:53Z Derrick 2 wikitext text/x-wiki == UOSL Parser == === Features === * Parses and normalizes UOSL script. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Command line tool. * DLL public interfaces for integration into your application. === Requirements === * Microsoft Windows + .Net 4.0 === Install Instructions === * Download: ** Binary Distibution: [ftp://download.joinuo.com/Apps/UOSL.zip FTP] | [http://download.joinuo.com/Apps/UOSL.zip HTTP] ** Source: (latest version requires .net 4.0) *** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Unzip if using Binary Distibution. Executable is UOSL.exe UOSL Language Package 0 89 419 372 2011-12-13T19:12:38Z Derrick 2 /* Requirements */ wikitext text/x-wiki == UOSL Language Package for Visual Studio 2010 v2.0 == === Features === [[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]] * Active UOSL source parsing displays syntax and grammar errors as you work. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Intellisense QuickInfo, Statement Completion and Parameter info: ** Keywords, local and inherited variables and functions ** Full library of core functions ** Trigger definitions * Automatic line indenting. * Navigate to inherited files with a triple click on the inherits line. * Visual brace matching * Visual highlighting of selected identifiers within scope. * Text colorization for keywords and constants. === Requirements === * Visual Studio 2010. ** Express editions cannot be supported currently. * .Net 3.5 and .Net 4.0 * A decent workstation: ** This extension does real-time parsing of UOSL source files. === Install Instructions === * Download: ** Binary: [ftp://download.joinuo.com/Apps/UOSLpkg.vsix FTP] | [http://download.joinuo.com/Apps/UOSLpkg.vsix HTTP] ** Source: *** SVN Checkout: [http://svn.joinuo.com/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Uninstall First: ** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs. ** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010 * Double click UOSLpkg.vsix to install this extension to Visual Studio. * Restart Visual Studio == Version History == === Version 2.0.0.0: Release Date 5/23/2011 === Known issues: * On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected. * The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything. * Friendly names for core function parameters are not yet available * In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas. * Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration === Version 1.0.0.0: Release date 4/10/2011 === Known issues: *Do not use. == Project Credits: == ;[mailto:batlin@joinuo.com Batlin] :Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list. ;[mailto:derrick@alienseed.com Derrick] :UOSL Parser and VS2010 language extension. UODemoDLL 0 140 427 2011-12-13T19:59:26Z Derrick 2 Redirected page to [[UoDemoDLL]] wikitext text/x-wiki #REDIRECT [[UoDemoDLL]] Main Page 0 1 432 404 2011-12-13T20:47:50Z Derrick 2 /* UO Demo Development */ Added UO:98 wikitext text/x-wiki __NOTOC__ __NOTOC__ __NOTOC__ [[Category:Full Protection|{{PAGENAME}}]] = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics. To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites. == Featured Contents == [[UO:98]] UO Server [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]]. == UO Demo Files == === Files on the UO:The Second Age retail CD === UoDemoInstall.exe is in the root of the CD. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Unpacking UODemo.DAT === [http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive] [[Mass M Decompiler|Decompiling the Scripts]] === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO:98 Public Ultima Online Server === [[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.joinuo.com/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]]. === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. 433 432 2011-12-13T20:48:09Z Derrick 2 /* Files on the UO:The Second Age retail CD */ wikitext text/x-wiki __NOTOC__ __NOTOC__ __NOTOC__ [[Category:Full Protection|{{PAGENAME}}]] = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics. To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites. == Featured Contents == [[UO:98]] UO Server [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]]. == UO Demo Files == === Files on the UO:The Second Age retail CD === [[UoDemoInstall.exe]] is in the root of the CD. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, has been opened on the JoinUO Forums : [http://forum.joinuo.com/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Unpacking UODemo.DAT === [http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive] [[Mass M Decompiler|Decompiling the Scripts]] === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO:98 Public Ultima Online Server === [[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.joinuo.com/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]]. === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. EatObject 0 74 435 279 2012-10-21T06:55:03Z Batlin 3 wikitext text/x-wiki integer '''eatObject'''(object ''Eater'', object ''Eaten''); This function will not do anything but to check the input.<br> If Eater is a NPC and Eaten is a valid object then 1 is returned.<br> In all other cases this full function will return 0.<br> Note: from the disassembly it's clear that this function was ment to be only used by NPC's. Return to the [[Command List]]. 436 435 2012-10-21T06:56:02Z Batlin 3 wikitext text/x-wiki integer '''eatObject'''(object ''Eater'', object ''Eaten''); This function will not do anything except checking the input.<br> If Eater is a NPC and Eaten is a valid object then 1 is returned.<br> In all other cases this full function will return 0.<br> Note: from the disassembly it's clear that this function was ment to be only used by NPC's. Return to the [[Command List]]. Command List 0 37 437 382 2012-10-21T07:10:34Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void openBank(object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 439 437 2012-10-21T17:49:29Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void [[openBank]](object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer isRidable(object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 443 439 2012-10-21T18:01:20Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void [[openBank]](object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer [[isRidable]](object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer getResourceTypeIdByName(integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 447 443 2012-10-21T21:09:14Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void [[openBank]](object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer isHumanBodyType(object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer [[isRidable]](object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer [[getResourceTypeIdByName]](integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 451 447 2012-11-22T21:27:55Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void [[openBank]](object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer [[isHumanBodyType]](object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer getObjType(object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer [[isRidable]](object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer [[getResourceTypeIdByName]](integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 454 451 2012-11-22T21:38:22Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void getequipment(list, object);<br> void getEquipment(list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void [[openBank]](object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer [[isHumanBodyType]](object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer [[getObjType]](object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer [[isRidable]](object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer [[getResourceTypeIdByName]](integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 457 454 2012-11-24T18:33:20Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void getcontents(list, object);<br> void getContents(list, object);<br> void [[getEquipment|getequipment]](list, object);<br> void [[getEquipment]](list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void [[openBank]](object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer [[isHumanBodyType]](object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer [[getObjType]](object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer [[isRidable]](object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer [[getResourceTypeIdByName]](integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> IsObscene 0 141 438 2012-10-21T07:15:10Z Batlin 3 Created page with 'integer '''isObscene'''(string ''Word''); This function will check if the word is one of the words in the three lists below. The lists below are in the same order the words will…' wikitext text/x-wiki integer '''isObscene'''(string ''Word''); This function will check if the word is one of the words in the three lists below. The lists below are in the same order the words will be checked by the demo core. It's funny to notice that the words Origin and OSI are considered obscene. ass clit clitoris cock cocksucker cum cunnilingus chink chinc dildo dyke felatio lesbo lezbo piss prick spic tit kike kyke wop chigaboo jigaboo fuck shit twat cunt snatch pussy dick asshole bitch blowjob fag goddamn jackoff jerkoff jism jiz kunt klit nigger nigga penis Origin OSI invulnerable frozen squelched Return to the [[Command List]]. dd offset aOrigin ; DATA XREF: FUNC_IsWordObscene+2E�o OpenBank 0 142 440 2012-10-21T17:54:10Z Batlin 3 Created page with 'void '''openBank'''(object ''Player'');<br> The ''openBank'' function expects a valid player object. If a player object was provided then: 1) a packet is send to his/her client …' wikitext text/x-wiki void '''openBank'''(object ''Player'');<br> The ''openBank'' function expects a valid player object. If a player object was provided then: 1) a packet is send to his/her client with the bank contents 2) the object variable ''bankOpenLoc'' is set and will contain the currect location of the player Return to the [[Command List]]. 441 440 2012-10-21T17:54:23Z Batlin 3 wikitext text/x-wiki void '''openBank'''(object ''Player'');<br> The ''openBank'' function expects a valid player object.<br> If a player object was provided then:<br> 1) a packet is send to his/her client with the bank contents<br> 2) the object variable ''bankOpenLoc'' is set and will contain the currect location of the player<br> Return to the [[Command List]]. 442 441 2012-10-21T17:54:51Z Batlin 3 wikitext text/x-wiki void '''openBank'''(object ''Player'');<br> The ''openBank'' function expects a valid player object.<br> If a player object was provided then:<br> -1- a packet is send to his/her client with the bank contents<br> -2- the object variable ''bankOpenLoc'' is set and will contain the currect location of the player<br> Return to the [[Command List]]. IsRidable 0 143 444 2012-10-21T18:07:36Z Batlin 3 Created page with 'integer '''isRidable'''(object ''Mobile''); This function will return 0 if the given ojbect is not a mobile.<br> The function will return 1 if the mobile is mountable/ridable, o…' wikitext text/x-wiki integer '''isRidable'''(object ''Mobile''); This function will return 0 if the given ojbect is not a mobile.<br> The function will return 1 if the mobile is mountable/ridable, otherwise 0 is returned.<br> An object is considered mountable/ridable if it has a resource attached which has a food name equal to ''RIDABLE''.<br> (See restypes.mul.q and itemres.mul.q) Return to the [[Command List]]. 445 444 2012-10-21T18:38:10Z Batlin 3 Protected "[[IsRidable]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki integer '''isRidable'''(object ''Mobile''); This function will return 0 if the given ojbect is not a mobile.<br> The function will return 1 if the mobile is mountable/ridable, otherwise 0 is returned.<br> An object is considered mountable/ridable if it has a resource attached which has a food name equal to ''RIDABLE''.<br> (See restypes.mul.q and itemres.mul.q) Return to the [[Command List]]. Scripts 0 12 446 177 2012-10-21T19:44:36Z Batlin 3 wikitext text/x-wiki The '''scripts''' subdirectory contains many files with a .m extension. The files contain binary data and cannot be read by hand. There is also one text file named [[sdb.txt]]. A decompiler can be found here : [[Mass M Decompiler]].<br> A list with commands that scripts can use can be found here : [[Command List]] The .m files are not encrypted but they do contain a sort of obfuscated, intermediate binary language between the original script files and the runtime engine of [[uodemo.exe]]. The .m files consist of obfuscated tokens, constants (byte, word, and double word values), string indexes into [[sdb.txt]] and quoted string indexes into [[sdb.txt]]. Constant, strings and quoted strings are preceded by a (obfuscated) token describing them. Quoted strings can be concatenated on-the-fly by the parser. The obfuscation works as follows: each token is represented by 5 different words (2 bytes). For example, the token "IF" is coded as byte 0x25, which is obfuscated to be 0x12C2, 0x1003, 0x0607, 0x0784 or 0x2B0F. So to decompile the .m file you must look-up each obfuscated word and convert it to a byte, then convert that byte to a token which we humans can read. This is a straight-forward process, therefor, (re-)compilation of .m files can be achieved with ease. Decompilation : 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F -> 0x25 -> IF<br> Compilation : IF -> 0x25 -> 0x12C2 or 0x1003 or 0x0607 or 0x0784 or 0x2B0F<br> ---- '''This is a list of supported tokens:'''<br> 0x390C, 0x0F3E, 0x0199, 0x0124, 0x305E -> 0x02 -> (<br> 0x39B3, 0x2D12, 0x26A6, 0x5D03, 0x1238 -> 0x03 -> )<br> 0x3B25, 0x1E1F, 0x1AD4, 0x7F96, 0x7FF5 -> 0x04 -> ,<br> 0x0732, 0x0120, 0x5CFD, 0x3E12, 0x3BF6 -> 0x06 -> ;<br> 0x3A9E, 0x0DDC, 0x5E14, 0x2E40, 0x1CD0 -> 0x07 -> {<br> 0x7EB7, 0x6032, 0x2C3B, 0x15A1, 0x3EF6 -> 0x08 -> }<br> 0x409D, 0x12E1, 0x121F, 0x26CA, 0x3699 -> 0x09 -> [ <br> 0x0902, 0x7BB9, 0x139D, 0x187E, 0x16C5 -> 0x0A -> ]<br> 0x3CD5, 0x13E9, 0x4080, 0x5DB2, 0x33EA -> 0x0B -> ! (not)<br> 0x23C9, 0x60BF, 0x3CD6, 0x0FBF, 0x2F14 -> 0x0C -> + (add)<br> 0x047E, 0x368E, 0x2FFF, 0x288F, 0x7DD1 -> 0x0D -> - (substract)<br> 0x261E, 0x5E9D, 0x1916, 0x32E6, 0x401D -> 0x0E -> * (multiply)<br> 0x0384, 0x18D7, 0x0FC9, 0x0E12, 0x2833 -> 0x0F -> / (divide)<br> 0x249E, 0x2B0C, 0x11F4, 0x5DD5, 0x127E -> 0x10 -> % (modula)<br> 0x0135, 0x07CF, 0x1AF4, 0x0ECC, 0x01D3 -> 0x11 -> == (equal to)<br> 0x0E90, 0x3A2D, 0x37E6, 0x19D9, 0x252A -> 0x12 -> != (not equal to)<br> 0x37E5, 0x1DC0, 0x1481, 0x4087, 0x2B01 -> 0x13 -> < (lower then)<br> 0x16D4, 0x3A8D, 0x7FBE, 0x0C7B, 0x0C15 -> 0x14 -> > (higher then)<br> 0x3807, 0x0633, 0x251F, 0x1D18, 0x3492 -> 0x15 -> <= (lower then or equal to)<br> 0x19DA, 0x39CE, 0x3BB1, 0x3004, 0x1796 -> 0x16 -> >= (higher then or equal to)<br> 0x1F16, 0x182F, 0x2CF7, 0x5ED0, 0x1316 -> 0x17 -> = (assign)<br> 0x5D24, 0x0588, 0x7CFE, 0x2725, 0x0DE5 -> 0x18 -> && (logical and)<br> 0x13D3, 0x29D8, 0x0A28, 0x09CE, 0x3960 -> 0x19 -> || (logical or)<br> 0x5CCD, 0x0940, 0x293B, 0x40A5, 0x1D11 -> 0x1B -> ++ (increment)<br> 0x2528, 0x0EA9, 0x3F0B, 0x3087, 0x3F97 -> 0x1C -> -- (decrement)<br> 0x30F1, 0x3295, 0x01C1, 0x0CE1, 0x3EE9 -> 0x1D -> int (integer)<br> 0x3F9A, 0x30A7, 0x2DB5, 0x169A, 0x2FE7 -> 0x1E -> str (string)<br> 0x10D9, 0x0390, 0x2A38, 0x0728, 0x5C5E -> 0x1F -> ust (?)<br> 0x01E1, 0x1030, 0x1BD9, 0x159F, 0x2BA5 -> 0x20 -> loc (location (x, y, z))<br> 0x28E2, 0x2F0C, 0x1289, 0x3382, 0x36C2 -> 0x21 -> obj (object)<br> 0x26B1, 0x1CDF, 0x27DA, 0x0E29, 0x113E -> 0x22 -> lis (list)<br> 0x2E39, 0x1D3F, 0x1D5E, 0x1FF1, 0x7E0E -> 0x23 -> voi (void)<br> 0x12C2, 0x1003, 0x0607, 0x0784, 0x2B0F -> 0x25 -> if<br> 0x3305, 0x32E7, 0x212C, 0x018E, 0x3308 -> 0x26 -> else<br> 0x3106, 0x018C, 0x357E, 0x0A87, 0x5D2B -> 0x28 -> while<br> 0x7DAA, 0x2F0B, 0x1BFC, 0x13F5, 0x1ECA -> 0x2A -> for<br> 0x017B, 0x6014, 0x0E99, 0x33CD, 0x27D3 -> 0x2C -> continue<br> 0x7F0D, 0x04F0, 0x183A, 0x1FB4, 0x13A6 -> 0x2D -> break<br> 0x04B0, 0x1927, 0x08FF, 0x31D8, 0x0914 -> 0x2F -> switch<br> 0x3223, 0x17B8, 0x3895, 0x248D, 0x342D -> 0x31 -> case<br> 0x5D3D, 0x3260, 0x32DE, 0x2780, 0x31AD -> 0x32 -> default<br> 0x5DE9, 0x5EA5, 0x11D5, 0x199F, 0x2F15 -> 0x33 -> return<br> 0x0E01, 0x19FE, 0x3821, 0x0B93, 0x0A2F -> 0x34 -> "declares a function and defines the implementation!"<br> 0x09B3, 0x038F, 0x328A, 0x08AF, 0x5CCA -> 0x35 -> "implement an event"<br> 0x0C95, 0x7CBE, 0x7C27, 0x5D2A, 0x2FA1 -> 0x36 -> "declare a variable at script level"<br> 0x31BE, 0x15B4, 0x07C9, 0x27C0, 0x1B32 -> 0x37 -> "include another script" (see NOTE)<br> 0x2934, 0x3E09, 0x012C, 0x2CC6, 0x7FA6 -> 0x38 -> "declares a function without defining the implementation!"<br> 0x5D17, 0x0A1D, 0x3B29, 0x2BFA, 0x2BB8 -> 0x3A -> quoted-string (C style = terminated with a 0-byte)<br> 0x17BD, 0x21EB, 0x2015, 0x5DB8, 0x15E1 -> 0x3C -> constant byte (gets zero extended to signed 32-bit integer)<br> 0x5B60, 0x3D8F, 0x0FF4, 0x275B, 0x3C8A -> 0x3D -> constant word (gets zero extended to signed 32-bit integer)<br> 0x188F, 0x5D27, 0x7F5C, 0x01F7, 0x093B -> 0x3E -> constant dword (gets casted to signed 32-bit integer)<br> 0x3510, 0x0B9B, 0x06E9, 0x3B9E, 0x0B31 -> 0x41 -> string (C style = terminated with a 0-byte)<br> NOTE: if you include a script it must the very first statement and you can only include one script per script! '''This is a list of supported but unused tokens:'''<br> 0x263D, 0x3B97, 0x4027, 0x138A, 0x282D -> 0x1A -> ^ (xor)<br> NOTE: this means you can create scripts that implement XOR (none of the included OSI scripts do this) '''This is a list of defined but unsupported tokens:'''<br> 0x1EDC, 0x20A8, 0x37BE, 0x01EB, 0x123B -> 0x27 -> ENDIF<br> 0x03FA, 0x0AF0, 0x0786, 0x2332, 0x1295 -> 0x29 -> ENDWHILE<br> 0x0D9F, 0x388A, 0x15FD, 0x7CB8, 0x1AF6 -> 0x2B -> ENDFOR<br> 0x190B, 0x3605, 0x20AD, 0x32CF, 0x2CD5 -> 0x2E -> GOTO (it's unclear how this statement works!)<br> 0x13F4, 0x3A27, 0x387C, 0x32C1, 0x198C -> 0x30 -> ENDSWITCH<br> NOTE: the ENDxxx statements are only used internally and are added by the parser where needed '''This is a list of obfuscated but unsupported tokens:'''<br> 0x0BB3, 0x2EA6, 0x12DB, 0x153C, 0x7E87 -> 0x01<br> 0x323B, 0x260D, 0x030A, 0x301C, 0x0BDB -> 0x05<br> 0x06E3, 0x36A1, 0x0C1E, 0x2120, 0x1DCB -> 0x24<br> 0x06D8, 0x3181, 0x2738, 0x3212, 0x03F9 -> 0x39<br> 0x1DB5, 0x2F95, 0x0EF5, 0x5CDF, 0x7B8B -> 0x3B<br> 0x2F84, 0x1DC3, 0x1DA7, 0x1A30, 0x2410 -> 0x3F<br> 0x02EE, 0x0603, 0x012F, 0x2C9E, 0x2BEF -> 0x40<br> ---- The language is very close to the C language, notice the existance of the { and } brackets. Also the for loop and switch statements work like its C variant, with support for the break and default keywords [http://en.wikipedia.org/wiki/Switch_statement]. GetResourceTypeIdByName 0 144 448 2012-10-21T21:12:13Z Batlin 3 Created page with 'integer '''getResourceTypeIdByName'''(integer &''ReturnTypeId'', string ''ResourceTypeInternalName''); This function will return 1 if the requested ResourceTypeInternalName is v…' wikitext text/x-wiki integer '''getResourceTypeIdByName'''(integer &''ReturnTypeId'', string ''ResourceTypeInternalName''); This function will return 1 if the requested ResourceTypeInternalName is valid. Otherwise 0 is returned. If successfull ReturnTypeId will contain the Id of the requested ResourceType. Resource Types are defined in the server-side restypes.mul file. Return to the [[Command List]]. 449 448 2012-10-21T21:12:34Z Batlin 3 wikitext text/x-wiki integer '''getResourceTypeIdByName'''(integer &''ReturnTypeId'', string ''ResourceTypeInternalName''); This function will return 1 if the requested ResourceTypeInternalName is valid.<br> Otherwise 0 is returned.<br> If successfull ReturnTypeId will contain the Id of the requested ResourceType.<br> Resource Types are defined in the server-side restypes.mul file.<br> Return to the [[Command List]]. 450 449 2012-10-21T21:12:40Z Batlin 3 Protected "[[GetResourceTypeIdByName]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki integer '''getResourceTypeIdByName'''(integer &''ReturnTypeId'', string ''ResourceTypeInternalName''); This function will return 1 if the requested ResourceTypeInternalName is valid.<br> Otherwise 0 is returned.<br> If successfull ReturnTypeId will contain the Id of the requested ResourceType.<br> Resource Types are defined in the server-side restypes.mul file.<br> Return to the [[Command List]]. IsHumanBodyType 0 145 452 2012-11-22T21:37:29Z Batlin 3 Created page with 'integer '''isHumanBodyType'''(object ''Mobile'');<br> The ''isHumanBodyType'' function will tell wether or not the Object Type of the specified mobile is that of a male or femal…' wikitext text/x-wiki integer '''isHumanBodyType'''(object ''Mobile'');<br> The ''isHumanBodyType'' function will tell wether or not the Object Type of the specified mobile is that of a male or female. The function will return 0 if the specified serial is invalid or is not a mobile.<br> The following object types are valid human body types: 400, 401, 402, 403. The later two are the ghost bodies of the first two. Because the return value 0 indicates both invalid serial/mobile and a non-human body type you should use the [[isMobile]] function in your scripts to ensure that the object is valid!<br> You can also use the [[getObjType]] function to get the actual body type of a mobile. Counselors and Game Masters have a body type of 987 and therefor do not have a human body type according to this function! Return to the [[Command List]]. 453 452 2012-11-22T21:37:56Z Batlin 3 Protected "[[IsHumanBodyType]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki integer '''isHumanBodyType'''(object ''Mobile'');<br> The ''isHumanBodyType'' function will tell wether or not the Object Type of the specified mobile is that of a male or female. The function will return 0 if the specified serial is invalid or is not a mobile.<br> The following object types are valid human body types: 400, 401, 402, 403. The later two are the ghost bodies of the first two. Because the return value 0 indicates both invalid serial/mobile and a non-human body type you should use the [[isMobile]] function in your scripts to ensure that the object is valid!<br> You can also use the [[getObjType]] function to get the actual body type of a mobile. Counselors and Game Masters have a body type of 987 and therefor do not have a human body type according to this function! Return to the [[Command List]]. GetObjType 0 146 455 2012-11-22T21:49:58Z Batlin 3 Created page with 'integer '''getObjType'''(object ''AnyObject'');<br> The ''getObjType'' function will return the type of an object. If the specified object is not valid then 0 is returned.<br> …' wikitext text/x-wiki integer '''getObjType'''(object ''AnyObject'');<br> The ''getObjType'' function will return the type of an object. If the specified object is not valid then 0 is returned.<br> For mobiles the object type is interpreted as the body type. Return to the [[Command List]]. 456 455 2012-11-22T21:50:08Z Batlin 3 Protected "[[GetObjType]]" ([edit=autoconfirmed] (indefinite) [move=autoconfirmed] (indefinite)) wikitext text/x-wiki integer '''getObjType'''(object ''AnyObject'');<br> The ''getObjType'' function will return the type of an object. If the specified object is not valid then 0 is returned.<br> For mobiles the object type is interpreted as the body type. Return to the [[Command List]]. GetEquipment 0 147 458 2012-11-24T18:37:47Z Batlin 3 Created page with 'integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br> integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br> At the beginning of the function …' wikitext text/x-wiki integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br> integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br> At the beginning of the function is that target list ''TargetList'' will be emptied.<br> Then if the the given mobile is valid then the first 26 [[Equipment|equipeded items]] will be added to the ''TargetList''. Return to the [[Command List]]. Equipment 0 148 459 2012-11-24T18:42:29Z Batlin 3 Created page with 'Each mobile has an array of 30 equipable item. Only the first 26 ones matter for the client. 25: If the mobile is mounted, the mount is at index 25.<br> 29: At the last index y…' wikitext text/x-wiki Each mobile has an array of 30 equipable item. Only the first 26 ones matter for the client. 25: If the mobile is mounted, the mount is at index 25.<br> 29: At the last index you will find the mobile's bank.<br> 472 459 2012-11-24T20:19:27Z Batlin 3 wikitext text/x-wiki Each mobile has an array of 30 equipable items. Only the first 26 ones matter for the client. 25: If the mobile is mounted, the mount is at index 25.<br> 29: At the last index you will find the mobile's bank.<br> GetEquipment 0 147 460 458 2012-11-24T18:42:44Z Batlin 3 wikitext text/x-wiki integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br> integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br> At the beginning of the function is that target list ''TargetList'' will be emptied.<br> Then if the given mobile is valid then the first 26 [[Equipment|equipeded items]] will be added to the ''TargetList''. Return to the [[Command List]]. 463 460 2012-11-24T18:52:51Z Batlin 3 wikitext text/x-wiki integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br> integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br> At the beginning of this function the target list ''TargetList'' is emptied.<br> Then if the given mobile is vali, the first 26 [[Equipment|equipeded items]] will be added to the ''TargetList''. Return to the [[Command List]]. 464 463 2012-11-24T18:53:00Z Batlin 3 wikitext text/x-wiki integer '''getequipment'''(list ''TargetList'', object ''Mobile'');<br> integer '''getEquipment'''(list ''TargetList'', object ''Mobile'');<br> At the beginning of this function the target list ''TargetList'' is emptied.<br> Then if the given mobile is valid, the first 26 [[Equipment|equipeded items]] will be added to the ''TargetList''. Return to the [[Command List]]. Command List 0 37 461 457 2012-11-24T18:49:01Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void [[getContents|getcontents]](list, object);<br> void [[getContents]](list, object);<br> void [[getEquipment|getequipment]](list, object);<br> void [[getEquipment]](list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void [[openBank]](object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer [[isHumanBodyType]](object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer [[getObjType]](object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer [[isRidable]](object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer getEquipSlot(object);<br> object getItemAtSlot(object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer [[getResourceTypeIdByName]](integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 465 461 2012-11-24T19:05:55Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void [[getContents|getcontents]](list, object);<br> void [[getContents]](list, object);<br> void [[getEquipment|getequipment]](list, object);<br> void [[getEquipment]](list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void [[openBank]](object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer [[isHumanBodyType]](object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer [[getObjType]](object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer [[isRidable]](object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer [[getEquipSlot]](object);<br> object [[getItemAtSlot]](object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer getMiscData(object);<br> integer getQuality(object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer [[getResourceTypeIdByName]](integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> 476 465 2012-11-24T20:36:21Z Batlin 3 wikitext text/x-wiki This Ultima Online Command List it not sorted or grouped in any special way other then the order they appear in the executable (uodemo.exe). Due to the nature of the Ultima Online Demo we are convinced that these script functions are indeed the scripts functions OSI used in 1998 to script their shards. The Internal Statements should not be used in your scripts, use the related language statement themselves. The script loader/parser in the demo with take care of the appropriate handling and conversion. The Internal Functions can be used but it would still be wiser to use the related operators as those read better. The Public Functions is where the real fun is, some functions have been documented and you can click on the function name for more details. == Internal Statements: == void TK_IF(integer, integer);<br> void TK_ELSE(integer);<br> void TK_ENDIF(void);<br> void TK_WHILE(integer, integer);<br> void TK_ENDWHILE(integer);<br> void TK_FOR(integer, integer);<br> void TK_ENDFOR(integer);<br> void TK_CONTINUE(integer);<br> void TK_BREAK(integer);<br> void TK_GOTO(integer);<br> void TK_SWITCH(integer);<br> void TK_ENDSWITCH(void);<br> void TK_CASE(void);<br> void TK_DEFAULT(void);<br> void TK_RETURN(void);<br> void TK_RETURN(integer);<br> void TK_RETURN(location);<br> void TK_RETURN(object);<br> void TK_RETURN(string);<br> == Internal Functions: == integer oprnull(integer);<br> integer oprplus(integer, integer);<br> integer oprminus(integer, integer);<br> integer oprmult(integer, integer);<br> integer oprdiv(integer, integer);<br> integer oprand(integer, integer);<br> integer opror(integer, integer);<br> integer oprxor(integer, integer);<br> integer oprequiv(integer, integer);<br> integer oprnequiv(integer, integer);<br> integer oprgt(integer, integer);<br> integer oprlt(integer, integer);<br> integer oprmod(integer, integer);<br> integer oprgteq(integer, integer);<br> integer oprlteq(integer, integer);<br> integer oprnot(integer);<br> any oprlist(list, integer);<br> list oprlist(list, integer);<br> integer oprlist(list, integer);<br> string oprlist(list, integer);<br> unicode oprlist(list, integer);<br> location oprlist(list, integer);<br> object oprlist(list, integer);<br> string oprlist(string, integer);<br> void oprinc(integer &);<br> void oprdec(integer &);<br> string oprplus(string, string);<br> string oprplus(string, integer);<br> string oprplus(string, location);<br> integer oprequiv(string, string);<br> integer oprnequiv(string, string);<br> integer oprequiv(location, location);<br> integer oprnequiv(location, location);<br> integer oprequiv(object, object);<br> integer oprnequiv(object, object);<br> void assignint(integer &, integer);<br> void assignstr(string &, string);<br> void assignust(unicode &, unicode);<br> void assignobj(object &, object);<br> void assignloc(location &, location);<br> void assignlist(list, list);<br> == All Public Functions: == void append(list, any);<br> void appendToList(list, any);<br> void prepend(list, any);<br> void prependToList(list, any);<br> void insert(list, any, integer);<br> void insertInList(list, any, integer);<br> integer numinlist(list &);<br> integer numInList(list);<br> integer isinlist(list, any);<br> integer isInList(list, any);<br> void setitem(list, any, integer);<br> void setItem(list, any, integer);<br> void setLocItem(list, location, integer);<br> void concatList(list, list);<br> void truncateList(list, integer);<br> void removeitem(list, integer);<br> void removeItem(list, integer);<br> void removespecificitem(list, any);<br> void removeSpecificItem(list, any);<br> void clearlist(list);<br> void clearList(list);<br> void printList(list);<br> integer getListItemType(list &, integer);<br> void copylist(list, list);<br> void copyList(list, list);<br> void sortList(list, integer);<br> integer isArrayInit(integer);<br> void initArray(integer, integer, integer, list);<br> void initArrayFromFile(integer, integer, integer, string);<br> void deleteArray(integer);<br> void setArrayIntElem(integer, integer, integer, integer);<br> void setArrayStrElem(integer, integer, integer, string);<br> void setArrayUStrElem(integer, integer, integer, unicode);<br> void setArrayElemns(integer, integer, integer, list);<br> integer getArrayIntElem(integer, integer, integer);<br> string getArrayStrElem(integer, integer, integer);<br> unicode getArrayUStrElem(integer, integer, integer);<br> integer getArrayWidth(integer);<br> integer getArrayHeight(integer);<br> void assignintstr(integer &, string);<br> void assignstrint(string &, integer);<br> void assignustint(unicode &, integer);<br> void assignlocint(location &, integer, integer, integer);<br> integer [[objtoint]](object);<br> void split(list, string);<br> integer wordWrap(list, string, integer);<br> integer textSubstitute(string &, string, string, string);<br> void split(list, string);<br> void splitCommaDelimitedString(list, string);<br> void concat(string, string);<br> void barkstr(string);<br> void barkint(integer);<br> integer [[strtoi]](string);<br> integer [[strlen]](string);<br> void toUpper(string &, integer, integer);<br> void [[removePrefix]](string &, string);<br> integer [[getCompileFlag]](integer);<br> void sendToNearbyPlayers(object, integer);<br> void targetobj(object, object);<br> void targetobj(object, object);<br> void targetloc(object, object);<br> void targetloc(object, object);<br> void supertargetobj(object, object, integer);<br> void superTargetObj(object, object, integer);<br> void supertargetloc(object, object, integer, integer);<br> void superTargetLoc(object, object, integer, integer);<br> void targetlocmulti(object, object, integer, integer, integer, integer);<br> void targetLocMulti(object, object, integer, integer, integer, integer);<br> void targetLocObjList(object, object, integer, integer, integer, list);<br> void addfrag(object, string);<br> void addFrag(object, string);<br> void addfragment(object, string);<br> void addFragment(object, string);<br> void removefragment(object, string);<br> void removeFragment(object, string);<br> integer [[hasScript|hasscript]](object, string);<br> integer [[hasScript]](object, string);<br> void attachscript(object, string);<br> void attachScript(object, string);<br> void detachscript(object, string);<br> void detachScript(object, string);<br> void getScripts(list, object);<br> void [[getContents|getcontents]](list, object);<br> void [[getContents]](list, object);<br> void [[getEquipment|getequipment]](list, object);<br> void [[getEquipment]](list, object);<br> void [[callBack|callback]](object, integer, integer);<br> void [[callBack]](object, integer, integer);<br> void [[shortCallback|shortcallback]](object, integer, integer);<br> void [[shortCallback]](object, integer, integer);<br> void removeCallback(object, integer);<br> void removeCallbackAdvanced(object, integer, integer);<br> integer hasCallback(object, integer);<br> integer hasCallbackAdvanced(object, integer, integer);<br> void callbackAdvanced(object, integer, integer, integer);<br> void selectType(object, object, integer, string, list);<br> void selectTypeAndHue(object, object, integer, string, list);<br> void selectHue(object, object, integer, integer);<br> void message(object, string, list);<br> integer messageret(object, object, string, list);<br> void multimessage(object, string, list);<br> void multiMessage(object, string, list);<br> void multiMessageToLoc(location, string, list);<br> void multiMessageToRange(location, integer, string, list);<br> void messageToRange(location, integer, string, list);<br> integer hasObjVar(object, string);<br> integer hasObjListVar(object, string);<br> any getObjVar(object, string);<br> integer getObjVar(object, string);<br> string getObjVar(object, string);<br> location getObjVar(object, string);<br> object getObjVar(object, string);<br> integer getobjvar_int(object, string);<br> string getobjvar_str(object, string);<br> location getobjvar_loc(object, string);<br> object getobjvar_obj(object, string);<br> void getObjListVar(list, object, string);<br> void setObjVar(object, string, any);<br> void removeObjVar(object, string);<br> void copyObjVar(object, object, string);<br> void copyAllObjVars(object, object);<br> integer addToObjVarListSet(object, string, any);<br> integer isInObjVarListSet(object, string, any);<br> void changeLoc(location &, integer, integer, integer);<br> object [[NULL]](void);<br> void setDefaultReturn(integer);<br> void setConvoRet(string);<br> void disableBehaviors(object);<br> void enableBehaviors(object);<br> integer areBehaviorsEnabled(object);<br> void callGuards(object, location, integer);<br> void seance(object, integer);<br> void setLastValidTerrainLoc(object, location);<br> integer teleport(object, location);<br> integer teleportNoFall(object, location);<br> integer random(integer, integer);<br> integer dice(integer, integer);<br> void deleteObject(object);<br> void deleteObjectNoFall(object);<br> integer putObjContainer(object, object);<br> integer toMobile(object, object);<br> integer putObjBank(object, object);<br> integer putMobContainer(object, object);<br> integer withdrawFromBank(object, integer);<br> integer withdrawAndDestroy(object, integer);<br> void [[openBank]](object);<br> integer depositIntoBank(object, object, integer);<br> integer amtGoldInBank(object);<br> integer equipObj(object, object, integer);<br> integer dropObj(object, location);<br> integer findGoodSpotNearWithElev(location &, integer, integer, integer, integer, integer);<br> integer findGoodSpotNear(location &, integer, integer, integer);<br> integer findGoodSpotNearMin(location &, integer, integer, integer, integer, integer);<br> integer findGoodZ(location, integer, integer, integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer walk(object, integer);<br> integer run(object, integer);<br> void setType(object, integer);<br> void setHue(object, integer);<br> void setPartialHue(object, integer);<br> void setDefaultTextHue(object, integer);<br> integer getDefaultTextHue(object);<br> void animateMobile(object, integer, integer, integer, integer, integer);<br> void sfx(location, integer, integer);<br> void sfxTo(object, integer, integer);<br> void musicTo(object, integer);<br> integer getDirectionInternal(location, location);<br> string getDirection(location, location);<br> integer [[getDistanceInTiles]](location, location);<br> string [[getDistance]](location, location);<br> location interpose(location, location);<br> integer getFacing(object);<br> integer getHue(object);<br> integer isFacingPlace(object, location);<br> integer isFacingPerson(object, object);<br> integer facingEachOther(object, object);<br> void faceHere(object, integer);<br> integer [[getSex]](object);<br> integer [[sameSex]](object, object);<br> integer [[isHumanBodyType]](object);<br> integer isHuman(object);<br> integer [[isMobile]](object);<br> integer [[isPlayer]](object);<br> integer [[isSpellbook]](object);<br> integer isContainer(object);<br> integer isRealContainer(object);<br> integer isMap(object);<br> integer [[isNPC]](object);<br> integer [[isOwnedPet]](object);<br> integer [[isShopKeeper]](object);<br> integer [[isGuard]](object);<br> integer isDead(object);<br> integer isInContainer(object);<br> integer isEquipped(object);<br> integer isMoveable(object, object);<br> integer isFreelyUsable(object, object);<br> integer isFreelyViewable(object, object);<br> integer [[isOnline]](object);<br> object containedBy(object);<br> object getTopmostContainer(object);<br> integer isNoDrawType(integer);<br> void bark(object, string);<br> void ebark(object, string);<br> void barkTo(object, object, string);<br> void ebarkTo(object, object, string);<br> void barkToHued(object, object, integer, string);<br> void bark(object, unicode);<br> void ebark(object, unicode);<br> void barkTo(object, object, unicode);<br> void ebarkTo(object, object, unicode);<br> void barkToHued(object, object, integer, string);<br> void actionBark(object, integer, string, string);<br> integer [[getObjType]](object);<br> integer getValue(object);<br> integer makeValueless(object);<br> integer isInCamp(object);<br> integer getWeight(object);<br> location getLocation(object);<br> location [[getRelayLoc]](object);<br> location whereIs(object);<br> location getMasterObjLoc(integer);<br> integer numInContainer(object);<br> integer [[isRidable]](object);<br> integer isRiding(object);<br> integer [[isVirtueGuard]](object);<br> integer isOrderGuard(object);<br> integer isChaosGuard(object);<br> integer isUsingVirtueShield(object);<br> integer unRide(object);<br> integer getAC(object);<br> integer getMovementType(object);<br> void setMovementType(object, integer);<br> integer getGeneric(object, integer);<br> integer getMoney(object);<br> void gainFame(object, integer);<br> void loseFame(object, integer);<br> integer NotorietyCompare(object, object);<br> integer notorietyCompare(object, object);<br> void addNotoriety(object, integer);<br> void removeNotoriety(object, integer);<br> integer getNotoriety(object);<br> integer getNotorietyLevel(object);<br> integer getNotorietyLevelByNot(integer);<br> void setNotoriety(object, integer);<br> integer getFame(object);<br> integer getAdjFame(object);<br> integer getFameLevel(object);<br> void changeFame(object, integer);<br> void setFame(object, integer);<br> integer getKarma(object);<br> integer getAdjKarma(object);<br> integer getKarmaLevel(object);<br> void changeKarma(object, integer);<br> void setKarma(object, integer);<br> integer getCurHP(object);<br> integer getMaxHP(object);<br> integer getCurFatigue(object);<br> integer getMaxFatigue(object);<br> integer getCurMana(object);<br> integer getMaxMana(object);<br> integer getCanCarry(object);<br> integer getSkillTotal(object);<br> integer getCappedSkillTotal(object);<br> integer getNaturalAC(object);<br> integer getHPLevel(object);<br> integer getFatigueLevel(object);<br> integer getManaLevel(object);<br> void setCurHP(object, integer);<br> void setMaxHP(object, integer);<br> void handleHealthGain(object);<br> void setCurFatigue(object, integer);<br> void setMaxFatigue(object, integer);<br> void setCurMana(object, integer);<br> void setMaxMana(object, integer);<br> void setNaturalAC(object, integer);<br> void addHP(object, integer);<br> void addMana(object, integer);<br> void addFatigue(object, integer);<br> void doDamageWithWeapon(object, object, object, integer);<br> void doDamage(object, object, integer);<br> void doDamageFight(object, object, integer, integer);<br> void doDamageType(object, object, integer, integer);<br> void loseHP(object, integer);<br> void loseMana(object, integer);<br> void loseFatigue(object, integer);<br> void restoreMobile(object);<br> void restoreFatigue(object);<br> void restoreHP(object);<br> void restoreMana(object);<br> string [[getHeShe]](object);<br> string [[getHimHer]](object);<br> string [[getHisHer]](object);<br> integer hasObjEquipped(object, object);<br> integer hasObjTypeEquipped(object, integer);<br> integer [[getEquipSlot]](object);<br> object [[getItemAtSlot]](object, integer);<br> object getWeapon(object);<br> integer isArmed(object);<br> integer getFreeHandSlot(object);<br> integer getYear(void);<br> integer getMonth(void);<br> integer getWeek(void);<br> integer getDay(void);<br> integer getHour(void);<br> integer getMinute(void);<br> integer getSeconds(void);<br> integer isWeapon(object);<br> integer isReallyWeapon(object);<br> integer getSatiety(object);<br> integer getRealStrength(object);<br> integer getRealDexterity(object);<br> integer getRealIntelligence(object);<br> integer getStrength(object);<br> integer getDexterity(object);<br> integer getIntelligence(object);<br> integer getStat(object, integer);<br> integer getRealStat(object, integer);<br> integer getStatAttributeMax(object, integer);<br> integer setStatAttributeMax(object, integer, integer);<br> integer modifyStat(object, integer, integer);<br> integer modifyRealStat(object, integer, integer);<br> integer setRealStat(object, integer, integer);<br> integer getStatMod(object, integer);<br> integer setStatMod(object, integer, integer);<br> integer getSkillMod(object, integer);<br> integer setSkillMod(object, integer, integer);<br> void addSatiety(object, integer);<br> integer testSkill(object, integer);<br> integer skillTest(object, integer);<br> integer testSkillReal(object, integer);<br> integer skillTestReal(object, integer);<br> integer getSkillLevel(object, integer);<br> integer getSkillLevelReal(object, integer);<br> integer getSkillLevelRealStat(object, integer);<br> integer getSkillLevelNoStat(object, integer);<br> integer getSkillLevelNoStatNoMod(object, integer);<br> void setSkillLevel(object, integer, integer);<br> void addSkillLevel(object, integer, integer);<br> void loseSkillLevel(object, integer, integer);<br> integer modifySkillMod(object, integer, integer);<br> void setMobFlag(object, integer, integer);<br> integer getMobFlag(object, integer);<br> integer getSkillNumber(string);<br> string getSkillName(integer);<br> string getOrcishSyllable(integer);<br> string getWispishSyllable(integer);<br> string getLizardishSyllable(integer);<br> string getRattishSyllable(integer);<br> void handleWatchingSkill(object, integer);<br> integer testAndLearnSkill(object, integer, integer, integer);<br> integer getSkillSuccessChance(object, integer, integer, integer);<br> object getBackpack(object);<br> object transferGenericToContainer(object, object, integer, integer);<br> object transferGenericToWorld(location, object, integer, integer);<br> void destroyGeneric(object, integer, integer);<br> object takeMoney(object, integer);<br> object giveItem(object, object);<br> void systemMessage(object, string);<br> void systemMessageHued(object, integer, string);<br> integer textMessage(object, string, integer, integer, integer);<br> integer superBark(object, string, integer, integer, integer);<br> void getMobsInRange(list, location, integer);<br> void getMobsInRangeOld(list, location, integer);<br> integer objIsInRange(location, integer);<br> void getObjectsInRange(list, location, integer);<br> void getObjectsInRangeWithFlags(list, location, integer, integer);<br> integer getNumAllObjectsInRangeWithFlags(location, integer, integer);<br> integer getObjectFlags(object, integer);<br> integer getTerrainFlags(integer, integer);<br> void getObjectsInRangeOfType(list, location, integer, integer);<br> void getObjectsInSpecRange(list, location, integer, integer);<br> object getFirstObjectOfType(location, integer);<br> object getNextObjectOfType(location, integer, object);<br> void getPlayersInRange(list, location, integer);<br> void getNPCsInRange(list, location, integer);<br> void getNPCsInRangeOld(list, location, integer);<br> integer getTileAt(location);<br> integer [[isInMap]](location);<br> integer [[isInWorld]](location);<br> integer getTileHeight(integer);<br> void getMobsAt(list, location);<br> void getPlayersAt(list, location);<br> void getNPCsAt(list, location);<br> void getObjectsAt(list, location);<br> void getObjectsAtInZRange(list, location, integer, integer);<br> integer getQuantity(object);<br> integer [[getMiscData]](object);<br> integer [[getQuality]](object);<br> integer getHeight(object);<br> integer getSurfaceHeight(object);<br> void logOut(object);<br> void safeLogOut(object);<br> void safeLogout(object);<br> void setHidden(object, integer);<br> integer isHidden(object);<br> void openGump(object, integer);<br> void closeGump(object, integer);<br> void doMissile_Loc2Loc(location, location, integer, integer, integer, integer);<br> void doMissile_Loc2Mob(location, object, integer, integer, integer, integer);<br> void doMissile_Mob2Loc(object, location, integer, integer, integer, integer);<br> void doMissile_Mob2Mob(object, object, integer, integer, integer, integer);<br> void doLocAnimation(location, integer, integer, integer, integer, integer);<br> void doMobAnimation(object, integer, integer, integer, integer, integer);<br> void doLightning(object);<br> void beginSequence(void);<br> void endSequence(integer);<br> integer waitState(object);<br> void setWaitState(object, integer);<br> integer isInvisible(object);<br> void setInvisible(object, integer);<br> void setPoisoned(object, integer);<br> void setCursed(object, integer);<br> string getName(object);<br> string getRealName(object);<br> void setRealName(object, string);<br> void setRealNameFromTemplate(object, integer);<br> string getTitledName(object);<br> void walkTo(object, location, integer);<br> integer canSeeObj(object, object);<br> integer getElevationAt(integer, integer);<br> integer canExistAt(location, integer, integer);<br> integer canSeeLoc(object, location);<br> integer [[isValid]](object);<br> integer getTemplate(object);<br> integer getDefaultAlignment(integer);<br> void setAlignment(object, integer);<br> void becomeTemplate(object, integer);<br> integer isAtHome(object);<br> integer thinksItsAtHome(object);<br> integer hasHome(object);<br> location getHome(object);<br> void setHome(object, location);<br> location getCreationLoc(object);<br> void getStaticObjectsAt(list, location);<br> void getStaticObjectsAtXY(list, location);<br> void getStaticObjectsAtXYZ(list, location);<br> void shopKeeperOpenBusiness(object, object);<br> void shopKeeperOpenBuying(object, object);<br> integer hasShopKeyword(list);<br> integer mobileWillBuy(object, object);<br> string getNameByType(integer);<br> integer [[getX]](location);<br> integer [[getY]](location);<br> integer [[getZ]](location);<br> void [[setX]](location &, integer);<br> void [[setY]](location &, integer);<br> void [[setZ]](location &, integer);<br> void moveDir(location &, integer);<br> void debugMessage(string);<br> void replyTo(object, object, string);<br> void replyToMobAbout(object, object, object, string);<br> void returnObject(object);<br> integer containsObj(object, object);<br> object containsObjType(object, integer);<br> integer mobileContainsObj(object, object);<br> void getObjectsOfTypeIn(list, object, integer);<br> object mobileContainsObjType(object, integer);<br> void getContainersOnMobile(list, object);<br> void useItem(object, object);<br> void doLookAt(object, object);<br> string getArticle(integer);<br> string [[objToStr]](object);<br> void scoreToSpace(string);<br> void scriptTrig(object, integer, object);<br> void processTriggerCmds(object, string);<br> void deleteIfValid(object, integer);<br> void deleteIfValidNoFall(object, integer);<br> void createPlaceHolder(object);<br> integer changeRange(object, integer, integer, integer);<br> integer findClosestArea(string &, location &, string, location, integer);<br> integer isInArea(string, location, integer);<br> void setLooksLikeTemplate(object, integer);<br> void followNpc(object, object, integer);<br> void stopFollowing(object);<br> object getLeader(object);<br> void runAway(object, object);<br> integer getHungerLevel(object);<br> void setDesireLevel(object, integer);<br> integer [[eatObject]](object, object);<br> void setBehavior(object, integer);<br> void clearBehavior(object, integer);<br> void loiter(object, integer);<br> void goLoiter(object, location, integer);<br> integer getDesireLevel(object);<br> void setLoiterMode(object, integer);<br> integer getLightVal(object);<br> integer getLightTime(object);<br> void setLight(object, integer, integer);<br> integer getResource(integer &, object, string, integer, integer);<br> integer getResourcesOnObj(object, integer, list);<br> string getResourceName(string, integer);<br> integer [[getResourceTypeIdByName]](integer &, string);<br> integer hasResource(object, integer);<br> integer hasObj(object, object);<br> integer hasObjType(object, integer);<br> integer hasObjTypeInBank(object, integer);<br> void callGuards(object, object, integer);<br> integer witnessCrime(location, object, object, string, integer, integer, integer);<br> void criminalAct(object, object, integer, integer);<br> void criminalActAdvanced(object, object, integer, integer, integer, integer);<br> void committedCrimeAt(object, location, integer);<br> void setCriminal(object, integer);<br> integer isCriminal(object);<br> integer [[isMurderer]](object);<br> integer [[getMurderCount]](object);<br> void setMurderCount(object, integer);<br> void setResurrectionResources(object);<br> integer canBeFreelyAggressedBy(object, object);<br> void refreshAggression(object);<br> void receiveAggressionFrom(object, object);<br> void receiveUnhealthyActionFrom(object, object);<br> void receiveHelpfulActionFrom(object, object);<br> void copyControllerInfo(object, object);<br> integer openContainer(object, object);<br> void updateHint(integer, object, integer, string, string, location, object, string, integer);<br> integer getHint(object, integer, integer &, object &, integer &, string &, string &, location &, object &, string &, integer &);<br> integer getLocalizedDesc(string &, location &, location, location);<br> integer getSmallestArea(string &, location);<br> integer isInRegionWithPrefix(string &, location);<br> integer getTrammelPhase(void);<br> integer getFeluccaPhase(void);<br> string getMoonPhaseStr(integer);<br> integer getMoonGateDest(integer);<br> integer canWield(object, object);<br> integer isSlashing(object);<br> integer isPiercing(object);<br> integer isBashing(object);<br> integer isRanged(object);<br> integer getMaxArmorClass(object);<br> integer getCurArmorClass(object);<br> integer getAmmoType(object);<br> integer getBow(object);<br> integer setMaxArmorClass(object, integer);<br> integer getWeaponRange(object);<br> integer getWeaponMinRange(object);<br> integer getWeaponHandedness(object);<br> string getWeaponName(object);<br> integer getAverageDamage(object);<br> void getWeaponClass(object, integer &, integer &, integer &, integer &);<br> void setWeaponClass(object, integer, integer, integer, integer);<br> integer getWeaponCurHP(object);<br> integer setWeaponCurHP(object, integer);<br> integer getWeaponMaxHP(object);<br> integer setWeaponMaxHP(object, integer);<br> integer getWeaponMinStr(object);<br> integer getWeaponSpeed(object);<br> integer getWeaponHitSfx(object);<br> integer getWeaponMissSfx(object);<br> integer applyWeaponTemplate(object, integer);<br> void [[makeDice]](string &, string, integer, integer, string, integer);<br> void splitDice(string, string &, integer &, integer &, string &, integer &);<br> void attack(object, object);<br> void peace(object);<br> void stopAttack(object);<br> void stopFight(object, object);<br> void getTargets(list, object);<br> void getVisableTargets(list, object);<br> object getFirstVisableTarget(object);<br> object getFirstVisibleTargetInRange(object, integer);<br> void getAttackers(list, object);<br> void getAttackersNearby(list, object);<br> integer getNumTargets(object);<br> integer getNumAttackers(object);<br> object getFirstTarget(object);<br> object makeMultiInst(location, integer);<br> object makeMultiInstCheck(location, integer, integer, integer, integer &, integer, integer, integer);<br> integer moveMulti(object, location);<br> integer moveMultiCheck(object, location, integer);<br> integer recycleMulti(object, integer);<br> integer recycleMultiCheck(object, integer, integer);<br> integer recycleMultiCheckRotate(object, integer, integer, integer);<br> integer moveMultiMapSwitch(object, location, integer);<br> integer isMultiComp(object);<br> integer isMultiSlave(object);<br> object getMultiSlaveId(object);<br> location getMultiComponentOffset(object);<br> integer areObjectsOn(object);<br> integer getMultiExtents(integer, location &, location &);<br> integer isHousingOkay(location, integer);<br> integer areSpellsOkay(location);<br> integer isInCityRegion(location);<br> integer inJusticeRegion(location);<br> integer getMultiType(object);<br> void resetMultiCarriedDecay(object);<br> integer multiCanExistAt(location, integer, integer);<br> integer canMultiExistAt(object, location, integer);<br> integer dropCheck(location &, object, integer);<br> integer isOnMulti(object, object);<br> object isOnAnyMulti(object);<br> object isAnyMultiAt(location);<br> object isAnyMultiBelow(location);<br> integer getNumInMultiType(integer);<br> void multiCompSetSendSlave(object, integer);<br> integer areMobilesInMultiArea(integer, location);<br> void getPlayersOnMulti(list, object);<br> void getObjectsOnMulti(list, object);<br> void sendPlayerZmoveStuff(object);<br> integer getDecayCount(object);<br> integer [[getDecayMax]](object);<br> integer setDecayCount(object, integer);<br> integer getHomeDecayRate(void);<br> integer getNonHomeDecayRate(void);<br> integer [[getDefaultDieDecay]](void);<br> integer getDecayInterval(void);<br> object mobileHasObjWithListObjOfObj(object, string, object);<br> integer [[getPulseNum]](void);<br> void [[setDecayTest]](integer);<br> object getClosestMobile(location, integer);<br> object getClosestPlayer(location, integer);<br> object getClosestOnlinePlayer(location, integer);<br> object getClosestMobileOrOnlinePlayer(location, integer);<br> object getClosestVisibleOnlinePlayer(location, integer);<br> void setMapProperties(object, integer, integer, integer, integer, integer, integer, integer);<br> integer isValidMap(object);<br> integer isMap(object);<br> integer getMapPointer(location &, object, integer);<br> integer copybook(object, object);<br> integer setNPCState(object, integer);<br> integer getNPCState(object);<br> integer goSleep(object, integer, integer);<br> void transferAllResources(object, object);<br> void transferResources(object, object, integer, string);<br> void transferGeneric(object, object, integer);<br> void returnAllResourcesToBank(object);<br> void returnResourcesToBank(object, integer, string);<br> object createGlobalNPCAt(integer, location, integer);<br> object createGlobalNPCAtSpecificLoc(integer, location);<br> object createGlobalObjectAt(integer, location);<br> object createGlobalObjectIn(integer, object);<br> object createGlobalObjectOn(object, integer);<br> object createNoResObjectAt(integer, location);<br> object createNoResObjectIn(integer, object);<br> object requestCreateObjectAt(integer, location);<br> object requestCreateObjectIn(integer, object);<br> object requestCreateNPCAt(integer, location, integer);<br> integer defineResource(object, string, integer, integer, integer);<br> object getChunkEgg(location);<br> void addGlobalQuantity(object, integer);<br> integer requestAddQuantity(object, integer);<br> void addConsumer(location &, string, integer, integer);<br> integer whoIsLargestConsumer(location, integer);<br> integer resourceTypeToId(string);<br> integer isGeneric(object);<br> integer canBeGeneric(object);<br> void destroyOne(object);<br> string getROBookTitle(integer);<br> integer getBookPages(object);<br> void removeLeadingWords(string &, integer);<br> object findClosestBBoard(location);<br> void setPostTime(object);<br> integer [[getTimeSecs]](void);<br> integer objectsNearby(list, location &, integer, integer);<br> void intRet(integer);<br> void textEntry(object, object, integer, integer, string);<br> void stringQuery(object, object, integer, string, integer, integer, integer, string);<br> void webBrowse(object, string);<br> void makeBeelineFailPathFind(object, integer);<br> void overloadWeight(object, integer);<br> void recalcWeight(object);<br> void fixBank(object);<br> void setStatus(object, integer, integer);<br> integer getStatus(object, integer);<br> integer isHair(object);<br> integer [[isEditing]](object);<br> integer [[isCounselor]](object);<br> integer [[isGameMaster]](object);<br> integer getPlayerBugStat(list, integer);<br> integer doNPCHeartBeat(object);<br> integer doNPCHandleStates(object);<br> integer isManifesting(object);<br> void addHelpRequestToQueue(object, integer, integer, string);<br> integer removePlayerFromGame(object);<br> void trackingTypeSelected(list, object, integer, integer, location);<br> object doTakeMoney(object, integer, integer);<br> void doSCommand(object, string);<br> integer resurrect(object, integer);<br> void destroyContents(object);<br> integer canHold(object, object);<br> void transferPlayer(object, object, string);<br> void checkTransferAccount(object, object);<br> integer getGMCallStatus(void);<br> void setGMCallStatus(integer);<br> integer getEncumbrance(object);<br> void [[getCurrentTimeStr]](string &);<br> void setROBookNum(object, integer);<br> integer [[getPlayAge]](object);<br> integer isCorpse(object);<br> integer getCorpseBodyType(object);<br> integer [[isObscene]](string);<br> void logEntry(integer, integer, object, string, string, string, string);<br> integer [[getAccountNum]](object);<br> integer getCharacterNum(object);<br> integer getCombatMode(object);<br> integer isInvulnerable(object);<br> void makeInvulnerable(object);<br> void makeVulnerable(object);<br> void openGenericGump(object, object, integer, integer, integer, list, list);<br> void setTile(location, integer);<br> integer getTile(location);<br> void setElevation(location, integer);<br> integer getElevation(location);<br> void createStatic(location, integer);<br> void createStaticHued(location, integer, integer);<br> void updatesOn(void);<br> void updatesOff(void);<br> void escript(object, string, string);<br> integer [[abs]](integer);<br> integer isGoldAccount(object);<br> GetContents 0 149 462 2012-11-24T18:52:23Z Batlin 3 Created page with 'integer '''getContents'''(list ''TargetList'', object ''Container'');<br> integer '''getContents'''(list ''TargetList'', object ''Container'');<br> At the beginning of this func…' wikitext text/x-wiki integer '''getContents'''(list ''TargetList'', object ''Container'');<br> integer '''getContents'''(list ''TargetList'', object ''Container'');<br> At the beginning of this function the target list ''TargetList'' is emptied.<br> Then if the given container is valid, the contents are appended to the ''TargetList''.<br> This function is not recursive if it finds a container. You will need to call [[getContents]] on that container yourself. Return to the [[Command List]]. GetItemAtSlot 0 150 466 2012-11-24T19:17:21Z Batlin 3 Created page with 'object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br> If the given Mobile is not a valid mobile then [[NULL]] is returned. If the slot number is not between 1 o…' wikitext text/x-wiki object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br> If the given Mobile is not a valid mobile then [[NULL]] is returned. If the slot number is not between 1 or 30 then [[NULL]] is returned. Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned. You can use ''getItemAtSlot(29)'' to get the bank object. There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br> Due to the memory lay-out, the function will return the mobile's direction as if it were an object. Return to the [[Command List]]. 467 466 2012-11-24T19:27:40Z Batlin 3 wikitext text/x-wiki object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br> If the given Mobile is not a valid mobile then [[NULL]] is returned. If the slot number is not between 1 or 30 then [[NULL]] is returned. Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned. You can use ''getItemAtSlot(29)'' to get the bank object. There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br> Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br> Thus calling ''getItemAtSlot(30)'' will crash the server. Return to the [[Command List]]. 468 467 2012-11-24T19:36:53Z Batlin 3 wikitext text/x-wiki object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br> If the given Mobile is not a valid mobile then [[NULL]] is returned. If the slot number is not between 1 or 30 then [[NULL]] is returned. Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned. You can use ''getItemAtSlot(29)'' to get the bank object. There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br> Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br> Thus calling ''getItemAtSlot(30)'' will crash the server. Also view : [http://www.joinuo.com/forums/viewtopic.php?f=32&t=4146] Return to the [[Command List]]. 469 468 2012-11-24T19:37:54Z Batlin 3 wikitext text/x-wiki object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br> If the given Mobile is not a valid mobile then [[NULL]] is returned. If the slot number is not between 1 or 30 then [[NULL]] is returned. Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned. You can use ''getItemAtSlot(29)'' to get the bank object. There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br> Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br> Thus calling ''getItemAtSlot(30)'' will crash the server. Also view the forums : [http://www.joinuo.com/forums/viewtopic.php?f=32&t=4146 Discussion of this bug] Return to the [[Command List]]. 470 469 2012-11-24T19:41:36Z Batlin 3 wikitext text/x-wiki object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br> If the given Mobile is not a valid mobile then [[NULL]] is returned. If the slot number is not between 1 or 30 then [[NULL]] is returned. Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned. You can use ''getItemAtSlot(29)'' to get the bank object. There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br> Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br> Thus: calling ''getItemAtSlot(30)'' will crash the server if the mobile is not facing North.<br> Also view the forums : [http://www.joinuo.com/forums/viewtopic.php?f=32&t=4146 Discussion of this bug] Return to the [[Command List]]. 471 470 2012-11-24T20:18:54Z Batlin 3 wikitext text/x-wiki object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br> If the given Mobile is not a valid mobile then [[NULL]] is returned.<br> If the slot number is not between 1 or 30 then [[NULL]] is returned.<br> Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned. You can use ''getItemAtSlot(29)'' to get the bank object. There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br> Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br> Thus: calling ''getItemAtSlot(30)'' will crash the server if the mobile is not facing North.<br> Also view the forums : [http://www.joinuo.com/forums/viewtopic.php?f=32&t=4146 Discussion of this bug] Return to the [[Command List]]. 497 471 2016-07-21T18:58:21Z Derrick 2 Update URL's to point to UO98.org wikitext text/x-wiki object '''getItemAtSlot'''(object ''Mobile'', integer SlotNumber);<br> If the given Mobile is not a valid mobile then [[NULL]] is returned.<br> If the slot number is not between 1 or 30 then [[NULL]] is returned.<br> Otherwise the [[Equipment|equipeded item]] at the specified index (''SlotNumber'') is returned. You can use ''getItemAtSlot(29)'' to get the bank object. There is a bug in this function. 30 is not a valid slot, 29 is the last valid one.<br> Due to the memory lay-out, the function will interprete the mobile's direction as if it were an object.<br> Thus: calling ''getItemAtSlot(30)'' will crash the server if the mobile is not facing North.<br> Also view the forums : [http://forums.uo98.org/viewtopic.php?f=32&t=4146 Discussion of this bug] Return to the [[Command List]]. 68a0a7f4c277341a3d9b0a35037aa2eb7cdeda8e GetEquipSlot 0 151 473 2012-11-24T20:32:37Z Batlin 3 Created page with 'integer '''getEquipSlot'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> This function will return 0 if the provided object is a mo…' wikitext text/x-wiki integer '''getEquipSlot'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> This function will return 0 if the provided object is a mobile.<br> The equipment slot is stored in the quality field as an ''unsigned char'' in the tiledata file. This function is closely related to the [[getQuality]] function. Return to the [[Command List]]. GetQuality 0 152 474 2012-11-24T20:35:17Z Batlin 3 Created page with 'integer '''getEquipSlot'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> The quality is stored in the quality field as an ''unsigne…' wikitext text/x-wiki integer '''getEquipSlot'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> The quality is stored in the quality field as an ''unsigned char'' in the tiledata file. This function is closely related to the [[getEquipSlot]] function. Return to the [[Command List]]. 475 474 2012-11-24T20:35:35Z Batlin 3 wikitext text/x-wiki integer '''getQuality'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> The quality is stored in the quality field as an ''unsigned char'' in the tiledata file. This function is closely related to the [[getEquipSlot]] function. Return to the [[Command List]]. GetMiscData 0 153 477 2012-11-24T20:45:35Z Batlin 3 Created page with 'integer '''getMiscData'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> The miscellaneous data is stored in the miscdata field as a…' wikitext text/x-wiki integer '''getMiscData'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> The miscellaneous data is stored in the miscdata field as an ''unsigned short'' in the tiledata file. The miscdata field was previously unknown in the UO world.<br> See here for a discussion : http://www.joinuo.com/forums/viewtopic.php?f=32&t=609<br> Derrick also provided a patch for RunUO : http://www.joinuo.com/forums/viewtopic.php?f=27&t=61<br> We also notified UoFiddler about this : http://uofiddler.polserver.com/ (see version change 4.4) Return to the [[Command List]]. 478 477 2012-11-24T20:46:10Z Batlin 3 wikitext text/x-wiki integer '''getMiscData'''(object ''AnyObject''); This function will return 0 if the provided object is not valid.<br> The miscellaneous data is stored in the miscdata field as an ''unsigned short'' in the tiledata file. The miscdata field was previously unknown in the UO world.<br> See here for a discussion : http://www.joinuo.com/forums/viewtopic.php?f=32&t=609<br> Derrick also provided a patch for RunUO : http://www.joinuo.com/forums/viewtopic.php?f=27&t=610<br> We also notified UoFiddler about this : http://uofiddler.polserver.com/ (see version change 4.4) Return to the [[Command List]]. GetDefaultDieDecay 0 96 479 336 2012-11-24T20:49:04Z Batlin 3 wikitext text/x-wiki integer '''getDefaultDieDecay'''(void);<br> This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://www.joinuo.com/forums/viewtopic.php?f=32&t=852 House decay time]. This function can be used to detect the decay mode the server is currently using. The following list represents the return values of this function and the related decay modes. <pre> 0x48 = mode 1 0xFA = mode 0 0xFF = mode 2 </pre> Please refer to the [[setDecayTest]] function for more information about the modes. Return to the [[Command List]]. 494 479 2016-07-21T18:56:06Z Derrick 2 Update URL's to point to UO98.org wikitext text/x-wiki integer '''getDefaultDieDecay'''(void);<br> This function returns a value known as the default die decay, not much is known yet about the exact meaning of the returned value. Please review the following topic on the JoinUO forums: [http://forums.uo98.org/viewtopic.php?f=32&t=852 House decay time]. This function can be used to detect the decay mode the server is currently using. The following list represents the return values of this function and the related decay modes. <pre> 0x48 = mode 1 0xFA = mode 0 0xFF = mode 2 </pre> Please refer to the [[setDecayTest]] function for more information about the modes. Return to the [[Command List]]. 46cc5278713810aad08eb6de7ab0bd54e687d1af GetSex 0 78 480 290 2012-11-24T20:52:33Z Batlin 3 wikitext text/x-wiki integer '''getSex'''(object ''Mobile'');<br> The ''getSex'' function will return the sex of a mobile. The returned value can be 0, 1 or 2. 0: the given object is not a valid mobile or is a valid mobile and has a male body type (400)<br> 1: the given object is a valid mobile and has a female body type (401)<br> 2: the given object is a valid mobile but does not have a male nor a female body type<br> Because the return value 0 indicates both a male or an invalid object/mobile you should use the [[isMobile]] function in your scripts to ensure that the object is valid!<br> Because ghosts have a body type of 402 or 403 you cannot use this function on player ghosts. Return to the [[Command List]]. 485 480 2012-11-24T20:56:07Z Batlin 3 wikitext text/x-wiki integer '''getSex'''(object ''Mobile'');<br> The ''getSex'' function will return the sex of a mobile. The returned value can be 0, 1 or 2. 0: the given object is not a valid mobile or is a valid mobile and has a male body type (400)<br> 1: the given object is a valid mobile and has a female body type (401)<br> 2: the given object is a valid mobile but does not have a male nor a female body type<br> Because the return value 0 indicates both a male or an invalid object/mobile you should use the [[isMobile]] function in your scripts to ensure that the object is valid!<br> Because ghosts have a body type of 402 or 403 you should not use this function on player ghosts to determine the sex. Return to the [[Command List]]. SameSex 0 79 481 291 2012-11-24T20:53:39Z Batlin 3 wikitext text/x-wiki integer '''sameSex'''(object ''MobileA'', object ''MobileB'');<br> The ''sameSex'' function will return 1 if both mobiles have the same 'sex value', see [[getSex]]. Otherwise 0 is returned. Because a 'sex value' of 0 is used for both male mobiles and invalid mobiles, you should use the [[isMobile]] function to validate the objects first to avoid unwanted results!<br> Because ghosts have a body type of 402 or 403 you should not use this function to compare the sex of dead players. Return to the [[Command List]]. GetHimHer 0 81 482 293 2012-11-24T20:54:41Z Batlin 3 wikitext text/x-wiki integer '''getHimHer'''(object ''Mobile'');<br> The ''getHimHer'' function will return a string containing "him", "her" or "it" based on the sex value of a mobile. See [[getSex]]. sex=0: "him" is returned<br> sex=1: "her" is returned<br> sex=2: "it" is returned<br> If an invalid object/mobile is provided than the string "him" will be returned, see [[getSex]] for more details.<br> Because player ghosts have a body type of 402 or 403, they will be considered "it". Return to the [[Command List]]. GetHeShe 0 80 483 292 2012-11-24T20:55:04Z Batlin 3 wikitext text/x-wiki integer '''getHeShe'''(object ''Mobile'');<br> The ''getHeShe'' function will return a string containing "he", "she" or "it" based on the sex value of a mobile. See [[getSex]]. sex=0: "he" is returned<br> sex=1: "she" is returned<br> sex=2: "it" is returned<br> If an invalid object/mobile is provided than the string "he" will be returned, see [[getSex]] for more details.<br> Because player ghosts have a body type of 402 or 403, they will be considered "it". Return to the [[Command List]]. GetHisHer 0 82 484 294 2012-11-24T20:55:39Z Batlin 3 wikitext text/x-wiki integer '''getHisHer'''(object ''Mobile'');<br> The ''getHisHer'' function will return a string containing "his", "her" or "its" based on the sex value of a mobile. See [[getSex]]. sex=0: "his" is returned<br> sex=1: "her" is returned<br> sex=2: "its" is returned<br> If an invalid object/mobile is provided than the string "his" will be returned, see [[getSex]] for more details.<br> Because player ghosts have a body type of 402 or 403, they will be considered "its". Return to the [[Command List]]. Main Page 0 1 486 433 2014-03-04T19:51:38Z Batlin 3 /* UO Demo Forum */ wikitext text/x-wiki __NOTOC__ __NOTOC__ __NOTOC__ [[Category:Full Protection|{{PAGENAME}}]] = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://www.joinuo.com/forums/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics. To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites. == Featured Contents == [[UO:98]] UO Server [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]]. == UO Demo Files == === Files on the UO:The Second Age retail CD === [[UoDemoInstall.exe]] is in the root of the CD. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, was opened on the JoinUO Forums.<br> '''02/17/14''' (''2014-02-17'') After ownership of JoinUO was transfered (in september 2013), our UO Demo/UO:98 forums were removed, the old UO Demo forum can be found here (but it will be deleted eventually) : [http://joinuo.com/oldforums/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Unpacking UODemo.DAT === [http://www.joinuo.com/forums/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive] [[Mass M Decompiler|Decompiling the Scripts]] === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.joinuo.com/svn/public/UODemo/ svn.joinuo.com] === UO:98 Public Ultima Online Server === [[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.joinuo.com/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]]. === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.joinuo.com/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. 487 486 2016-07-21T18:42:30Z Derrick 2 Update URL's to point to UO98.org wikitext text/x-wiki __NOTOC__ __NOTOC__ __NOTOC__ [[Category:Full Protection|{{PAGENAME}}]] = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://forums.uo98.org/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics. To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites. == Featured Contents == [[UO:98]] UO Server [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]]. == UO Demo Files == === Files on the UO:The Second Age retail CD === [[UoDemoInstall.exe]] is in the root of the CD. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, was opened on the JoinUO Forums.<br> '''02/17/14''' (''2014-02-17'') After ownership of JoinUO was transfered (in september 2013), our UO Demo/UO:98 forums were removed, the old UO Demo forum can be found here : [http://forums.uo98.org/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Unpacking UODemo.DAT === [http://forums.uo98.org/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive] [[Mass M Decompiler|Decompiling the Scripts]] === Join SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.uo98.org/svn/public/UODemo/ svn.uo98.org] === UO:98 Public Ultima Online Server === [[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.uo98.org/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]]. === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. 9176e37e13e5624f58a8a39faa051224f9278435 490 487 2016-07-21T18:51:56Z Derrick 2 /* SVN Server */ wikitext text/x-wiki __NOTOC__ __NOTOC__ __NOTOC__ [[Category:Full Protection|{{PAGENAME}}]] = <big>'''Welcome the UO Demo Wiki.'''</big> = UO Demo or UODemo refers to the Ultima Online Demo released by Origin Systems Inc in 1998 on the UO:Second Age Retail CD. It was as the name hints, an offline playable demo of the Ultima Online game back then. The information in this wiki is derived from reverse engineering the demo consisting of one executable file and one data file. The name T2A Demo is somewhat of a misnomer, as the server contained within the demo is Pre-T2A. The uodemo.exe file contains both a early UO Client, and a complete production UO server dated to [[Dating the Ultima Online Demo|mid 1998]]. The scripts contained within the demo are [http://forums.uo98.org/viewtopic.php?f=32&t=760 nearly] complete for the server's timeframe, and even include some preliminary work on T2A era mechanics. To install the demo you need an Ultima Online:The Second Age retail CD. Good luck has been had finding these on EBay and other auction sites. == Featured Contents == [[UO:98]] UO Server [[Mass M Decompiler]] [[Command List|The Command List]] [[Scripts|About the obfuscated scripts]] [[Dating the Ultima Online Demo]] We are currently maintaining '''[[Special:Statistics|{{NUMBEROFARTICLES}}]]''' articles: [[Special:AllPages|All Pages]]. == UO Demo Files == === Files on the UO:The Second Age retail CD === [[UoDemoInstall.exe]] is in the root of the CD. After installing UO Demo you see two files : [[uodemo.exe]] and [[uodemo.dat]]. [[uodemo.exe]] is the executable, it contains authentic server code and a full client. [[uodemo.dat]] is encrypted using the GOST block cipher [http://en.wikipedia.org/wiki/GOST_28147-89]. The keys to decrypt the file are inside uodemo.exe. See also [[.rundir]]. == Modified UODemo Files == <big>'''UoDemo+.''' (UO Demo Plus)</big> The [[uodemo+]].exe is a modified demo executable to help unleash some of the [[secrets]] within. <big>'''UoDmClnt.''' (UO Demo Client)</big> The [[UoDmClnt]].exe is a modified uodemo.exe to act as a real/pure client without calling the server functions. == UO Demo Forum == '''09/13/09''' (''2009-09-13'') With the help of Derrick, a forum where you can find help about running or hacking/modding the demo, was opened on the JoinUO Forums.<br> '''02/17/14''' (''2014-02-17'') After ownership of JoinUO was transfered (in september 2013), our UO Demo/UO:98 forums were removed, the old UO Demo forum can be found here : [http://forums.uo98.org/viewforum.php?f=32 UO Demo Forum] == UO Demo Development == === Unpacking UODemo.DAT === [http://forums.uo98.org/viewtopic.php?f=32&t=318 Accessing the files inside the DAT archive] [[Mass M Decompiler|Decompiling the Scripts]] === SVN Server === A public SVN has been set up for releasing UODemo related software projects. You can browse the library here: [http://svn.uo98.org/svn/public/UODemo/ svn.uo98.org] === UO:98 Public Ultima Online Server === [[UO:98]] is a full world multi-player extension to the UO Demo. [http://svn.uo98.org/svn/public/ Source code here], requires [[UO:98#Installer|installer]] and [[T2A CD]] containing [[UoDemoInstall.exe]]. === UO Demo Class Library === The UO Demo Class Library is an SDK for working with the UODemo files and internals. It currently implements a script compiler and decompiler. The source code is [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library/ available here]. === UOSL Language === [[UOSL Language Package]] - A Language pack for the the UOSL scripting language for Visual Studio 2010. [[UOSL Parser]] - Command line script validator and normalizer. === Using Subversion === SubVersion client software is useful for interfacing with the SVN server. SubVersion is a version control system. For more info on what Subversion is you can read more about it here [http://en.wikipedia.org/wiki/Apache_Subversion Apache_Subversion on Wikipedia]. For client software for Windows try [http://tortoisesvn.tigris.org/ TortiseSVN]. ba9e3aba93ba4ce6e031c3c0a33d0ae5b696a5c2 UO:98 0 123 488 431 2016-07-21T18:47:08Z Derrick 2 Update URL's to point to UO98.org wikitext text/x-wiki UO:98 is an extension to the UO Demo released by Origin Systems in 1998 on the Ultima Online:Second Age CD. The UO Demo (demo) is an offline tutorial for Ultima Online. The Demo featured only the town of Ocllo, and a quest that a player could complete while learning about the Game and Client. UO:98 unlocks many of the features that exist in the UO Demo such as the ability for others to connect with a regular UO Client, the ability to use the built in staff tools, and the expansion of the playing world to the entire map, and world saving. UO:98 also adds new features such as an accounting system, full world decoration, and support for later UO Client versions. [[File:UO98_Startup.png|400px|thumb|right|Starting UO:98]] [[File:UO98 Ingame.png|400px|thumb|right|In Game]] [[File:UO98 God Client.JPG|400px|thumb|right|God Client support]] Please see also the [http://forums.uo98.org/viewforum.php?f=34 UO:98 forums] at JoinUO = Installer = Download from UO98: [http://download.uo98.org/Emulators/UO98/UO98_Setup.msi HTTP] (9.20 MB) = Installation prerequisites = In addition to requiring the Ultima Online:The Second Age CD, the UO:98 distribution also requires (at a minimum), the following software installed or available on the target platform. * Microsoft Windows XP, Vista or 7 * Microsoft .Net 4.0 Client Profile. * Ultima Online Client version 1.25.35 through 5.x ** (6.x packet protocols not yet implemented) = Installing UO:98 = You must have the UO Client installed to your PC first. Note that under Windows 7 and Vista it is not recommended to install the UO Client in "Program Files" or on the root of the C drive (C:\) due to security issues with these folders. The installer will offer to direct you to the Download page for the Microsoft .Net 4.0 framework. If it is not installed at the time of installation you will need to re-run the installer after the completion of the Framework install. It's best practice to place the Ultima Online : The Second Age CD in your CD Rom drive before beginning the installation so that the installer can find your copy of the required UoDemoInstall.exe file on that disk. Installation should be relatively straightforward. If you have trouble, please visit the [http://forums.uo98.org/viewforum.php?f=34 UO:98 forums] for help = Using UO:98 = As of the intial public release, UO:98 is started from the UO98 folder by running StartUO98.cmd. You may be prompted the first time the program is run to allow UODemo+.exe through your firewall. If you intend to allow connections to UO:98 from outside your local network, you should check the "public" in addition to "private" box in that dialog. UO:98 supports the client version on the UO:T2A (1.25.35) through 5.x '''Unencrypted'''. You may use Razor to connect to UO:98, or modify the login.cfg file in your UO Client folder and use a decrypted version of the client. See [https://www.google.com/search?q=uorice UORice] for more info on decrypting the client. * Server: '''<YOUR LAN ADDRESS>''' (not localhost or 127.0.0.1) * Port: 2593 The server will not accept connections using localhost or 127.0.0.1. Use your lan address. In windows you can determine your LAN address by typing ''ipconfig'' at the command prompt. The default port for UO:98 is ''2593'''. This may be modified within the file UO98\rundir\UO98\server.txt.q It's not recommended at this time to modify fields other than <port XXX> in the server.txt.q file. The server as distributed has one administrator account: * Username: '''Admin''' * Password: '''password''' Additional accounts can be auto created by simply attempting login on a non-existent account. The server auto saves hourly, writing to UO98/[[.rundir|rundir]]/UO98. There is a copy of the distribution world files at http://svn.uo98.org/svn/public/UO98/Data/distro/ should you need to restore them. Typically only accounts.xml, [[Dynamic0.mul|dynamic0.mul.q]], and [[Dynidx0.mul|dynidx.mul.q]] will need to be restored. These three files should be treated as a unit, and always be backed up and restored together. = Administrating UO:98 = More administration tools are planned. Currently the world is most easily modified with the "[[God Client]]" which you may be able to find out there somewhere on the web. == Accounts == User accounts are stored in UO98/[[.rundir|rundir]]/UO98/accounts.xml To modify a user account level, you can modify the ''accessflags'' element of their account. You should do this when the server is shut down, as this file is overwritten on saves. Standard values for accessflags are: * Player - No special Access * Editor - [[God Client]] Features (i.e., GM). See also: [[IsEditing]] * Admin - Editor, plus access to '']save'' and '']shutdown'' commands == In Game Commands == === GM"cheat" Commands === These commands are implemented in the gmcheat.uosl script. ; [spawn <templateid> : Creates a templated entity. Templates are defined in UO98/[[.rundir|rundir]]/bank/[[Templatestable.dat|templatestable.dat.q]] ; [spawnitem <itemid> : Creates an item of itemid at the targeted location. Scripts are only added if the numeric item script exists (like 244.uosl.m.q) ; [tele <X> <Y> [Z] : Teleports your to the specified map location. Z is optional. ; [setskill <#> <val> : Sets your skill of # to the specified value (integer 0-100) ; [setskill all <val> : Sets all your skills to the specified value (integer 0-100) ; [listskills : Lists all the numeric skill id's (for use in the setskill command) ; [addscript <name> : Adds a names script to the targeted object. Scripts are not specified with file extensions. Example: [addscript heavy ; [where : Prints our your location. ; [setname <new name> : Sets the name (RealName) of the target ; [getserial : Reports the global serial of the targeted object. See also: [[Objtoint]] ; [gethue : Reports the hue of the targeted object ; [getheight : Reports the height of the targeted object ; [getelevation : Reports the Z location of the targeted object === SCommands === These commands are built into UODemoDLL and are not scripted (note the ]) ; ]save : Saves the world to dynamic0.mul ; ]coun [me|<serial> [type]] : Makes the target (or yourself if "me") a counselor. ; ]ucoun [me|<serial>] : Unmakes the target a counselor ; ]shutdown : Shuts down the server, without save. ; ]test : This simply verifies that the "SCommands" are working. == Handy Templates == ; 3501 : Loaded spellbook ; 3506 : Reagent bag ; 1504 : 100 gold ; 1900-1920 : House deeds ; 1800-1805 : Boat deeds For more templates, look in UO98/[[.rundir|rundir]]/bank/[[Templatestable.dat|templatestable.dat.q]] == Handy Scripts== These are implementors for the god client Utility window commands, but may be used in the regular client by using [addscript ... ; gmcheat : Give the targeted player access to [[#GM.22cheat.22_Commands|GM Commands]] ; commandDelete : Delete targeted item ; commandZap : Delete Targeted NPC (Don't Zap players!) ; commandInvulnerable : Makes the targeted Mobile invulnerable. Inverse is commandVulnerable ; commandSlay : Kills the targeted mobile ; commandResurrect : Ressurrects the targeted mobile (player) ; commandFreeze : Freezes the targeted Mobile. Inverse is commandUnFreeze ; commandSquelch : Squelches the targeted Mobile. Inverse is commandUnSquelch ; Heavy : Sets the weight of an item to 255, making it immovable. The commands that are prefixed with ''command'' are custom and the equivalent of the Utility window commands in the [[God Client]]. A complete list is in the Wombat Scripts project, filtered under Staff Tools/Custom Admin/CommandImplementors = How does it work = UO:98 is an attempt to bring the [[Main_Page|UO Demo]] mainstream by patching the Demo into a fully functional and administrable server. The majority of the necessary basework via [[UoDemo+]] has been available for some time. The [[UoDemoDLL]] project took [[UoDemo+]] well beyond the chains imposed by having to make direct hacks to the [[UODemo.EXE]], patches can now be applied or even un-applied during run-time; and new code can be added outside the executable and hooked to existing functions. A new project called Sidekick was developed in Visual-C++ to be loaded by [[Main_Page|UoDemo]] using the [[Uodemo%2B#Publish_15|UODEMODLL]] env variable. This Dll loads both Batlin's [[UoDemoDLL]] (In addition to some great patches, the Wombat API for in-memory patching), and also loads a C# managed DLL called Sharpkick. Sidekick acts as a Marshall between the unmanaged Borland C [[UoDemoDLL]], and Sharpkick a Managed C#.Net DLL Currently all packets can be intercepted and replaced or handled directly within C#. This gives the ability to handle the login sequence very elegantly within C#, and with access to all of the .Net framework for XML handling and file IO for account name translation to account numbers, which are accepted for login by [[UoDemo+]]. = Development = [[File:Checkout.JPG|200px|thumb|right|Checkout UO:98 to the same folder that you installed the application to.]] [[File:Confirm.JPG|200px|thumb|right|Confirm that you really want to checkout to an existing folder.]] [[File:UO98folder.JPG|200px|thumb|right|UO98 folder should look like this.]] UO:98 development requires at a minimum Visual Studio 2010 with C# and C++, and the .Net 4.0 Framework. See the [[#UODemoDLL | UODemoDLL]] section for additional optional requirements. The UO:98 project is Copyright &copy; 2011 JoinUO, and is Licensed under the [http://www.opensource.org/licenses/OSL-3.0 Open Software License version 3.0] == Getting the Source == The UO:98 source code is available on our [http://svn.uo98.org/svn/public/ public SVN]. You can checkout the public source directly to the folder which you installed UO:98 to. The SVN is not comprehensive, you need to install UO:98 using the [[#installer | Installer]] first. The UO:98 SVN URL is: http://svn.uo98.org/svn/public/UO98 If not familiar with Subversion (SVN), in windows [http://tortoisesvn.net TortoiseSVN] (as in the example on the right) is a easy to use tool for working with svn repositories. You can get the latest version here: http://tortoisesvn.net/downloads.html To use TortoiseSVN to check out the solution: * Install Tortoise SVN, and reboot your PC. * Open Windows Explorer to the parent folder to which you installed UO98 (C:\ if you installed in c:\UO98) * Right click in an empty area of the folder choose "SVN Checkout..." * URL of repository: http://svn.uo98.org/svn/public/UO98 * Checkout Directory: C:\UO98 (if that's where UO 98 is installed) * Click OK. * You will get a warning about checking out to an existing directory, click OK. ** If you're not comfortable with SVN checkouts, you might want to make a backup copy of your UO98 folder before checking out. (this is probably good advice even if you are comfortable with SubVersion) * The files will be fetched to the UO98 folder. You will see a new folder in UO98 called DEV, and some of the existing folders and files will now have green checkmarks on them. This indicates their contents match the SVN versions. If you make changes to files they will appear with a red X on them. This lets you know they were modified from the originals. Any files and folders with a blue ? on them are items that are not present in the repository. The rundir has this mark, as it is not included in the distribution. == The Solution File == [[File:Uo98solution.JPG|150px|thumb]] The UO:98 solution file, located un UO98\Dev\UO98.sln is made up of 5 projects. Only three of these projects are actually .Net projects, Scripts and UODemoDLL are in this solution for editing only. Sharpkick is the primary project in the UO:98 solution. The Sidekick and UODemoDLL projects are used to transition from managed to unmanaged code, and interface with the running UODemo+.exe. Sharpkick_Offline_Tests is a standard [http://en.wikipedia.org/wiki/Unit_testing Unit Test] project that uses the built in [http://msdn.microsoft.com/en-us/library/ms243147(v=vs.80).aspx Microsoft Testing Framework]. It's intended to test Everything within the Sharpkick project by using a [http://en.wikipedia.org/wiki/Mock_object mock] of the Server Core. Coverage is currently substancially less than "everything". There is an additional test framework that is built into Sidekick and UODemoDLL for running tests against the running UODemo. These tests can be executed by running UO98_TestMode.cmd. This will compile UODemoDLL, launch UODemo+, and execute the tests in UO98\Dev\UODemoDLL\src\Tests.c . Please see the [[#UODemoDLL | UODemoDLL section]] of this guide regarding the requirements for compiling [[UODemoDLL]]. == UODemoDLL == To develop or compile the UODemoDLL you will need Borland C++ Compiler 5.5 and Turbo Assembler 5.0 (TASM). The build commands are configured so that these applications are expected to be installed in c:\borland\BCC55 and c:\borland\TASM If your borland install folders differ from this, you may need to modify BCCPATH and TASMPATH in UO98/Dev/BUILDDLL.dll There is a UODemoDLL project in the VS10 solution, this is for editing only. This is not VC++ code, and VS2010 cannot compile it. To start UO98 with a recompile of the UoDemoDLL, run UO98.cmd in the UO98 folder. Running StartUO98.cmd will start UO:98 without compiling the UODemoDLL. == Community == In addition to this [[Main_Page|UODemo wiki]], The [http://forums.uo98.org/viewforum.php?f=32 UO Demo forum] on JoinUO has a lot of information on the UODemo internals. We are anxious to meet other developers interested in the project. If you are excited about this project, please drop into the [http://forums.uo98.org/viewforum.php?f=34 UO:98 forum] and [http://forums.uo98.org/viewforum.php?f=32 UODemo forum] and say hello. = Credits = UO:98 is an joint effort of the JoinUO team. It was primarily developed by Batlin and Derrick and is based on the UODemoDLL project. Thanks much as well to Garrett, Rougan, and Kaivan for their efforts on the UODemo, God Client, and this project. eeb3fb25da8034407d45a87905b4e2e289c084d6 Mass M Decompiler 0 17 489 281 2016-07-21T18:49:25Z Derrick 2 Update URL's to point to UO98.org wikitext text/x-wiki Presenting you the Mass M Decompiler with VB.NET source code... This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems. How it works? Very easy, extract all files from the DAT file with ''Ultima Online uodemo.dat extractor 0.1b'' [http://aluigi.altervista.org/search.php?src=ultima+online] and point the utility to the extracted scripts subdirectory. Then press the ''Mass Decompile'' button and when the decompilation is finished press the ''Dump All'' button, this will create a ''scripts.c'' directory. If you need assistance with using the Mass M Decompiler please search or post your question at JoinUO : [http://forums.uo98.org/viewforum.php?f=32 UO Demo Forum] '''Current:'''<br> [http://download.uo98.org/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%203).zip Download Mass M Decompiler (Publish 3)].<br> NOTE: This version uses the UO Demo SDK and also fixed a bug related with the decompilation of the targetloc event, this bug was reported by Garret of [http://www.ruosi.org ruosi.org]. '''Archived:'''<br> [http://download.uo98.org/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%202).zip Download Mass M Decompiler (Publish 2)].<br> NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents [http://download.uo98.org/Mass%20M%20Decompiler/Mass%20M%20Decompiler%20(Publish%201).zip Download Mass M Decompiler (Publish 1)]. Technical information about the M files can be found [[scripts|here]]. d5baf8aa2237f99756a0d212c1a463c3f79888cf UOSL Language Package 0 89 491 419 2016-07-21T18:53:42Z Derrick 2 Update URL's to point to UO98.org wikitext text/x-wiki == UOSL Language Package for Visual Studio 2010 v2.0 == === Features === [[File:uoslQuickInfo.png|400px|thumb|right|Intelisense: QuickInfo, Parameter info, highlighting]][[File:uoslAutoComplete.png|400px|thumb|right|Intelisense: Statement Completion ]] * Active UOSL source parsing displays syntax and grammar errors as you work. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Intellisense QuickInfo, Statement Completion and Parameter info: ** Keywords, local and inherited variables and functions ** Full library of core functions ** Trigger definitions * Automatic line indenting. * Navigate to inherited files with a triple click on the inherits line. * Visual brace matching * Visual highlighting of selected identifiers within scope. * Text colorization for keywords and constants. === Requirements === * Visual Studio 2010. ** Express editions cannot be supported currently. * .Net 3.5 and .Net 4.0 * A decent workstation: ** This extension does real-time parsing of UOSL source files. === Install Instructions === * Download: ** Binary: [http://download.uo98.org/Apps/UOSLpkg.vsix HTTP] ** Source: *** SVN Checkout: [http://svn.uo98.org/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Uninstall First: ** If you installed an earlier release of the UOSL Extensions using a Setup.exe program, uninstall this software via Add/Remove programs. ** If you installed an earlier version using a vsix package, uninstall the existing version From the Tools\Extension Manager menu in VS2010 * Double click UOSLpkg.vsix to install this extension to Visual Studio. * Restart Visual Studio == Version History == === Version 2.0.0.0: Release Date 5/23/2011 === Known issues: * On an reported error parsing an inherits file, each reporting file may need to be closed and reopened, or edited to clear the error condition after the error in the offending file is corrected. * The code context menu items "Go To Reference", "Go To Declaration" and "Go To Definition" do not do anything. * Friendly names for core function parameters are not yet available * In order for parameter help to pop up in an existing function invocation after typing (, put a space after the ( before you type it. This is not an issue for commas. * Quick Info does not handle the scope of the objects under the cursor, for example when hovering over "callback" you will see the definition or both the core function and the trigger declaration === Version 1.0.0.0: Release date 4/10/2011 === Known issues: *Do not use. == Project Credits: == ;[mailto:batlin@uo98.org Batlin] :Project Founder; UOSL Language specification; Divination; Demo SDK; and many other even more important things too numerous and mysterious to list. ;[mailto:derrick@alienseed.com Derrick] :UOSL Parser and VS2010 language extension. e5e81f5025b2559bd2cceb32abbefcb33ae0068f UOSL Parser 0 92 492 434 2016-07-21T18:55:02Z Derrick 2 Update URL's to point to UO98.org wikitext text/x-wiki == UOSL Parser == === Features === * Parses and normalizes UOSL script. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Command line tool. * DLL public interfaces for integration into your application. === Requirements === * Microsoft Windows + .Net 4.0 === Install Instructions === * Download: ** Binary Distibution: [ftp://download.uo98.org/Apps/UOSL.zip FTP] | [http://download.uo98.org/Apps/UOSL.zip HTTP] ** Source: (latest version requires .net 4.0) *** SVN Checkout: [http://svn.uo98.org/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Unzip if using Binary Distibution. Executable is UOSL.exe 0b9695a708407d32649fd45c109d19f599e75859 493 492 2016-07-21T18:55:21Z Derrick 2 wikitext text/x-wiki == UOSL Parser == === Features === * Parses and normalizes UOSL script. * Supports multiple language extensions (UOSL Extended, Enhanced and Native) * Command line tool. * DLL public interfaces for integration into your application. === Requirements === * Microsoft Windows + .Net 4.0 === Install Instructions === * Download: ** Binary Distibution: [http://download.uo98.org/Apps/UOSL.zip HTTP] ** Source: (latest version requires .net 4.0) *** SVN Checkout: [http://svn.uo98.org/svn/public/UODemo/UnOfficial%20Script%20Language UnOfficial Script Language] And [http://svn.uo98.org/svn/public/UODemo/UO%20Demo%20Class%20Library UO Demo Class Library] * Unzip if using Binary Distibution. Executable is UOSL.exe e64a4aac4484d7da5317bbaf1885695845987a3e Uodemo+ 0 15 495 406 2016-07-21T18:56:59Z Derrick 2 Update URL's to point to UO98.org wikitext text/x-wiki A list of supported environment variables:<br> Publish 15+: UODEMODLL=<filename (DLL file)><br> Publish 14+: USEACCOUNTNAME=YES/NO<br> Publish 14+: MANUALLOGON=YES/NO<br> Publish 13+: IGNOREDYNIDX0=YES/NO<br> Publish 12+: REGKEYNAME=<registry key name><br> Publish 12+: LOCALCOUNSELOR=1/2/3/Seer/Counselor/Senior Counselor<br> Publish 11: REALDAMAGE=YES/NO<br> Publish 8+: SAVEDYNAMIC0=YES/NO<br> Publish 6+: LOGFILE=<filename> (Razor format)<br> Publish 4+: RUNDIR=<directory><br> Publish 3+: DATFILE=<filename><br> By default: [[SERVERNAME]]=<directory><br> == Publish 15 == The fifteenth publish of the uodemo+ adds an option (UODEMODLL) allowing you to code your own DLL which will be added to the demo's address space. Considering the technical know-how required to produce a usefull DLL you can redirect your questions to the official UoDemo's forum : [http://forums.uo98.org/viewforum.php?f=32 UO Demo Forum]. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2015).rar Download UoDemo+ (Publish 15)]<br> == Publish 14 == The fourteenth publish of the uodemo+ adds an option (USEACCOUNTNAME) to process the Account Name as if it were an AccountID! ''AccountID = atoi(AccountName)''. You can now also disable the automatic logon process by setting MANUALLOGON to YES. A possibility to redirect scripts has been introduced. The formula is "SET <scriptname>.m=<newscriptname>.m". The new Ultima Online Demo script still requires the .q extension at the end of its file name. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2014).rar Download UoDemo+ (Publish 14)]<br> == Publish 13 == The thirteenth publish of the uodemo+ introduces the IGNOREDYNIDX0 environment variable, if set to YES then the file "dynidx0.mul.q" is ignored when parsing the "dynamic0.mul.q" file. Loading will take longer but you can now edit the DYNAMIC0 file without having to worry about corrupt indexes. If SAVEDYNAMIC0 is used (see Publish 11) then the DYNIDX0 file will still be saved! [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2013).rar Download UoDemo+ (Publish 13)]<br> == Publish 12 == The twelfth publish of the uodemo+ reinstates counselor support. Unreferenced code that activates counselor support was discovered and has been re-enabled. To become a counselor set LOCALCOUNSELOR to a number 1, 2 or 3, or a string indicating the counselor type you want to be: Seer/Counselor/Senior Counselor. Also, a bug preventing the demo server from loading when Kingdom Reborn (or 3D client) was installed has been fixed, along with a complete redesign of how the demo locates the client data files. You can now use REGKEYNAME to override the registry subkey, default is "1.0". The REALDAMAGE option has been removed. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2012).rar Download UoDemo+ (Publish 12)]<br> == Publish 11 == The eleventh publish of the demo allows you to disable the server function by setting the port in [[server.txt]] to 0. Also a Sleep Patch was introduced. It was also discovered that the demo divides all damage done by two. Starting from this publish you can set REALDAMAGE to YES to disable this division. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2011).rar Download UoDemo+ (Publish 11)]<br> EDIT: Turns out that that divide by two was intended [http://update.uo.com/oldupdates/12-9-97.shtml]. Therefor the REALDAMAGE option will be removed in the next publish! == Publish 10 == Publish ten introduced PvP possibilities. The original demo contained more than enough functions and support for multiple connections. Those functions were only taken binary space in the executable, publish 10 gave those functions their full glory again. If the server function cannot start the demo will exit, this was fixed in Publish 11. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%2010).rar Download UoDemo+ (Publish 10)] == Publish 9 == Starting with publish nine you can run the normal Ultima Online Client and the Ultima Online Gold Demo concurrently, this was done by renaming the Window Title and the File Mapping object. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%209).rar Download UoDemo+ (Publish 9)] == Publish 8 == The eight publish re-enabled the saving of the dynamic0.mul file! The uodemo contains code to write back this file but the call to the function was left out when Origin Systems, Inc. made their final compile of the demo. Starting with this publish you can set an environment setting SAVEDYNAMIC0 to YES to enable a call to this function on exit. Be careful, the uodemo is even capable of modifying the DAT file without requiring extra patches. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%208).rar Download UoDemo+ (Publish 8)] == Publish 7 == The seventh publish added a patch to re-enable debug logging. The Ultima Online Gold demo contains many debug strings but the actual debug output function was not compiled in. To view this output you must use a utility like DebugView/DbgView. Leave the uodemo running for a few hours and enjoy the show. Also this patch corrects a bug found in the packet logger added in publish 6. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%207).rar Download UoDemo+ (Publish 7)] == Publish 6 == Starting with publish six you can use a environment setting LOGFILE to enable logging of the packets that are send between the uodemo client and uodemo server. The log file created follows the same structure as the popular UO Razor macroing utility. Warning, this version contains a bug and to avoid corrupt log files you must use publish 7. The log files proove that the server code is very authentic. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%206).rar Download UoDemo+ (Publish 6)] == Publish 5 == Publish five was a small release to accommodate for easier debugging of the ExtractScriptBytes function (or whatever you want to name the function at address 0x4283E4). The function extracts obfuscated tokens (or strings, quoted strings or constants) from the M script files. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%205).rar Download UoDemo+ (Publish 5)] == Publish 4 == With publish 4 an environment setting "RUNDIR" was added to override the default ".rundir" directory name. This way you can make different versions of the .rundir files. Starting with publish 4 the version identifier was modified to include uodemo+ and its publish number. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%204).rar Download UoDemo+ (Publish 4)] == Publish 3 == Publish three added an environment setting DATFILE, which you can use to override to default "uodemo+.dat" file. This way, you can place "uodemo+.dat" and force usage of the ".rundir" by setting DATFILE to a file that does not exist. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%203).rar Download UoDemo+ (Publish 3)] == Publish 2 == It was discovered that the uodemo contained code to load files directly from disk (without using uodemo.dat). The second publish of uodemo+ re-enabled this by analyzing and patching in the missing code. With success. Starting from publish 2 you can delete (or rename) the uodemo+.dat. You must extract all the files from the DAT archive to a "..\.rundir" directory and ensure each file has a ".Q" extension. ''Download not available!'' == Publish 1 == The first publish of uodemo+.exe renamed the uodemo.dat to uodemo+.dat. This was done to allow working on a patched DAT archive while not touching the original one. [http://download.joinuo.com/UoDemoPlus/UoDemoPlus%20(Publish%201).rar Download UoDemo+ (Publish 1)] acde1e4aeec2ef0ef61b74c2bbfd8214cc73f9db Secrets 0 16 496 341 2016-07-21T18:57:33Z Derrick 2 Update URL's to point to UO98.org wikitext text/x-wiki The Ultima Online Demo contains some features that people didn't know about till now! '''Did you know you can tell the wisp to go away?'''<br> Say "dismiss" and the wisp will leave you alone and will start a life of its own.<br> '''login.txt'''<br> The demo supports a file named login.txt, you have to place it in the root of the [[.rundir]] directory. The contents of that file will appear in your journal as soon as you log on to the demo server. Note: not all characters may appear but this seems to be limitation of the client and not the server, the packet contains the complete file.<br> '''The account numbers found in [[dynamic0.mul]] are IP addresses (of OSI programmers back then?)'''<br> Analysis of the account numbers has revealed that there's a direct match between them and IP addresses. These IP addresses are now owned by EA and were most probably owned by OSI in 1998 (?). The Avatar, the hero of the demo, has has a fixed account number 2130706433 which equals the IP address 127.0.0.1 aka localhost. [http://forums.uo98.org/viewtopic.php?f=32&t=522 forum topic] '''The poisoning script contains a serious bug.'''<br> It took OSI until october to fix this bug: [http://update.uo.com/oldupdates/10-1-98.shtml 10/1/98 OSI Patch Notes]<br> (with thanks to Dies Irae)<br> dab729c82f680ca170d56005b7399a93aeafe07f